Advertisement
Guest User

Untitled

a guest
Jul 14th, 2016
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 39.70 KB | None | 0 0
  1.     <?php
  2.     /**
  3.      * MageWorx
  4.      * Admin Order Grid  extension
  5.      *
  6.      * @category   MageWorx
  7.      * @package    MageWorx_OrdersGrid
  8.      * @copyright  Copyright (c) 2015 MageWorx (http://www.mageworx.com/)
  9.      */
  10.  
  11.     class MageWorx_OrdersGrid_Model_Observer
  12.     {
  13.  
  14.         /**
  15.          * Archive orders by cron
  16.          *
  17.          * Cron job: mageworx_ordersgrid_archive
  18.          * Schedule: 0 0 * * *
  19.          *
  20.          * @param $schedule
  21.          */
  22.         public function scheduledArchiveOrders($schedule)
  23.         {
  24.             $helper = $this->getMwHelper();
  25.             $days = $helper->getDaysBeforeOrderGetArchived();
  26.             if (!$helper->isEnabled() || $days == 0) {
  27.                 return;
  28.             }
  29.             $archiveOrdersStatus = $helper->getArchiveOrderStatuses();
  30.             /** @var MageWorx_OrdersGrid_Model_Resource_Order_Collection $orders */
  31.             $orders = Mage::getResourceModel('mageworx_ordersgrid/order_collection')->setFilterOrdersNoGroup($days)->addFieldToFilter('status', array('in' => $archiveOrdersStatus));
  32.             $orderIds = array();
  33.             foreach ($orders as $ord) {
  34.                 $orderIds[] = $ord->getEntityId();
  35.             }
  36.  
  37.             // to archive
  38.             $helper->addToOrderGroup($orderIds, 1);
  39.         }
  40.  
  41.         /**
  42.          * Extends mass actions at orders grid
  43.          *
  44.          * Event: core_block_abstract_to_html_before
  45.          * Observer Name: mageworx_add_mass_actions
  46.          *
  47.          * @param $observer
  48.          */
  49.         public function addMassActionToSalesOrdersGrid($observer)
  50.         {
  51.             /** @var Mage_Core_Block_Abstract $block */
  52.             $block = $observer->getBlock();
  53.             if($block->getType() == 'adminhtml/widget_grid_massaction' && ($block->getParentBlock() instanceof Mage_Adminhtml_Block_Sales_Order_Grid))
  54.             {
  55.                 /** @var Mage_Adminhtml_Block_Widget_Grid_Massaction $block */
  56.                 if ($this->getMwHelper()->isEnabled()) {
  57.  
  58.                     if ($this->getMwHelper()->isEnableInvoiceOrders() && Mage::getSingleton('admin/session')->isAllowed('sales/mageworx_ordersgrid/actions/invoice')) {
  59.                         $block->addItem('invoice_order', array(
  60.                             'label' => $this->getMwHelper()->__('Invoice'),
  61.                             'url' => $this->getUrl('adminhtml/mageworx_ordersgrid/massInvoice'),
  62.                         ));
  63.                     }
  64.  
  65.                     if ($this->getMwHelper()->isEnableShipOrders() && Mage::getSingleton('admin/session')->isAllowed('sales/mageworx_ordersgrid/actions/ship')) {
  66.                         $block->addItem('ship_order', array(
  67.                             'label' => $this->getMwHelper()->__('Ship'),
  68.                             'url' => $this->getUrl('adminhtml/mageworx_ordersgrid/massShip'),
  69.                         ));
  70.                     }
  71.  
  72.                     if ($this->getMwHelper()->isEnableInvoiceOrders() && $this->getMwHelper()->isEnableShipOrders() && Mage::getSingleton('admin/session')->isAllowed('sales/mageworx_ordersgrid/actions/invoice_and_ship')) {
  73.                         $block->addItem('invoice_and_ship_order', array(
  74.                             'label' => $this->getMwHelper()->__('Invoice+Ship'),
  75.                             'url' => $this->getUrl('adminhtml/mageworx_ordersgrid/massInvoiceAndShip'),
  76.                         ));
  77.                     }
  78.  
  79.                     if ($this->getMwHelper()->isEnableInvoiceOrders() && Mage::getSingleton('admin/session')->isAllowed('sales/mageworx_ordersgrid/actions/invoice')) {
  80.                         $block->addItem('invoice_and_print', array(
  81.                             'label' => $this->getMwHelper()->__('Invoice+Print'),
  82.                             'url' => $this->getUrl('adminhtml/mageworx_ordersgrid/massInvoiceAndPrint'),
  83.                         ));
  84.                     }
  85.  
  86.                     if ($this->getMwHelper()->isEnableArchiveOrders() && Mage::getSingleton('admin/session')->isAllowed('sales/mageworx_ordersgrid/actions/archive')) {
  87.                         $block->addItem('archive_order', array(
  88.                             'label' => $this->getMwHelper()->__('Archive'),
  89.                             'url' => $this->getUrl('adminhtml/mageworx_ordersgrid/massArchive'),
  90.                         ));
  91.                     }
  92.  
  93.  
  94.                     if ($this->getMwHelper()->isEnableDeleteOrders() && Mage::getSingleton('admin/session')->isAllowed('sales/mageworx_ordersgrid/actions/delete')) {
  95.                         $block->addItem('delete_order', array(
  96.                             'label' => $this->getMwHelper()->__('Delete'),
  97.                             'url' => $this->getUrl('adminhtml/mageworx_ordersgrid/massDelete'),
  98.                         ));
  99.                     }
  100.  
  101.                     if ($this->getMwHelper()->isEnableDeleteOrdersCompletely() && Mage::getSingleton('admin/session')->isAllowed('sales/mageworx_ordersgrid/actions/delete_completely')) {
  102.                         $block->addItem('delete_order_completely', array(
  103.                             'label' => $this->getMwHelper()->__('Delete Completely'),
  104.                             'url' => $this->getUrl('adminhtml/mageworx_ordersgrid/massDeleteCompletely'),
  105.                         ));
  106.                     }
  107.  
  108.  
  109.                     if (($this->getMwHelper()->isEnableArchiveOrders() || $this->getMwHelper()->isEnableDeleteOrders()) && (Mage::getSingleton('admin/session')->isAllowed('sales/mageworx_ordersgrid/actions/archive') || Mage::getSingleton('admin/session')->isAllowed('sales/mageworx_ordersgrid/actions/delete'))) {
  110.                         $block->addItem('restore_order', array(
  111.                             'label' => $this->getMwHelper()->__('Restore'),
  112.                             'url' => $this->getUrl('adminhtml/mageworx_ordersgrid/massRestore'),
  113.                         ));
  114.                     }
  115.                 }
  116.             }
  117.  
  118.             return;
  119.         }
  120.  
  121.         /**
  122.          * Update columns of sales order grid
  123.          *
  124.          * Event: core_layout_block_create_after
  125.          * Observer Name: mageworx_add_custom_columns
  126.          *
  127.          * @param $observer
  128.          */
  129.         public function addCustomColumnsToSalesOrdersGrid($observer)
  130.         {
  131.             $helper = $this->getMwHelper();
  132.             if (!$helper->isEnabled()) {
  133.                 return;
  134.             }
  135.             /** @var Mage_Core_Block_Abstract $block */
  136.             $block = $observer->getBlock();
  137.             if($block->getType() == 'adminhtml/widget_grid_massaction') {
  138.                 /** @var Mage_Adminhtml_Block_Sales_Order_Grid $block */
  139.                 $block = $block->getLayout()->getBlock('sales_order.grid');
  140.                 if (!$block) {
  141.                     return;
  142.                 }
  143.                 $allColumns = $helper->getAllGridColumns();
  144.                 $sortedColumns = $helper->getGridColumnsSortOrder();
  145.                 if (!empty($sortedColumns)) {
  146.                     $allColumns = array_flip($sortedColumns);
  147.                 }
  148.                 $listColumns = $helper->getGridColumns();
  149.                 foreach ($allColumns as $position => $column) {
  150.                     switch ($column) {
  151.  
  152.                         /** ==================== Regular Columns ==================== */
  153.                         case 'real_order_id':
  154.                             if (!in_array($column, $listColumns)) {
  155.                                 $block->removeColumn($column);
  156.                             } else {
  157.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  158.                             }
  159.                             break;
  160.  
  161.                         case 'store_id':
  162.                             if (!Mage::app()->isSingleStoreMode()) {
  163.                                 if (!in_array($column, $listColumns)) {
  164.                                     $block->removeColumn($column);
  165.                                 } else {
  166.                                     $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  167.                                 }
  168.                                 break;
  169.                             }
  170.                             break;
  171.  
  172.                         case 'created_at':
  173.                             if (!in_array($column, $listColumns)) {
  174.                                 $block->removeColumn($column);
  175.                             } else {
  176.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  177.                             }
  178.                             break;
  179.  
  180.                         case 'billing_name':
  181.                             if (!in_array($column, $listColumns)) {
  182.                                 $block->removeColumn($column);
  183.                             } else {
  184.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  185.                             }
  186.                             break;
  187.  
  188.                         case 'shipping_name':
  189.                             if (!in_array($column, $listColumns)) {
  190.                                 $block->removeColumn($column);
  191.                             } else {
  192.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  193.                             }
  194.                             break;
  195.  
  196.                         case 'base_grand_total':
  197.                             if (!in_array($column, $listColumns)) {
  198.                                 $block->removeColumn($column);
  199.                             } else {
  200.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  201.                             }
  202.                             break;
  203.  
  204.                         case 'grand_total':
  205.                             if (!in_array($column, $listColumns)) {
  206.                                 $block->removeColumn($column);
  207.                             } else {
  208.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  209.                             }
  210.                             break;
  211.  
  212.                         case 'status':
  213.                             if (!in_array($column, $listColumns)) {
  214.                                 $block->removeColumn($column);
  215.                             } else {
  216.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  217.                             }
  218.                             break;
  219.  
  220.                         case 'action':
  221.                             if (!in_array($column, $listColumns)) {
  222.                                 $block->removeColumn($column);
  223.                             } else {
  224.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  225.                             }
  226.                             break;
  227.  
  228.                         /** ==================== Custom Columns ==================== */
  229.                         case 'product_names':
  230.                             if (in_array($column, $listColumns)) {
  231.                                 $block->addColumn('product_names', array(
  232.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_products',
  233.                                     'header' => $helper->__('Product Name(s)') . (!strpos(Mage::app()->getRequest()->getRequestString(), '/exportCsv/') ? '' : ''),
  234.                                     'index' => 'product_names',
  235.                                     'column_css_class' => 'mw-orders-grid-product_names'
  236.                                 ));
  237.                             }
  238.                             break;
  239.  
  240.                         case 'product_skus':
  241.                             if (in_array($column, $listColumns)) {
  242.                                 $block->addColumn('product_skus', array(
  243.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_products',
  244.                                     'header' => $helper->__('SKU(s)'),
  245.                                     'index' => 'skus'
  246.                                 ));
  247.                             }
  248.                             break;
  249.  
  250.                         case 'product_options':
  251.                             if (in_array($column, $listColumns)) {
  252.                                 $block->addColumn('product_options', array(
  253.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_products',
  254.                                     'header' => $helper->__('Product Option(s)'),
  255.                                     'index' => 'product_options',
  256.                                     'filter' => false,
  257.                                     'sortable' => false
  258.                                 ));
  259.                             }
  260.                             break;
  261.  
  262.                         case 'customer_email':
  263.                             if (in_array($column, $listColumns)) {
  264.                                 $block->addColumn('customer_email', array(
  265.                                     'type' => 'text',
  266.                                     'header' => $helper->__('Customer Email'),
  267.                                     'index' => 'customer_email'
  268.                                 ));
  269.                             }
  270.                             break;
  271.  
  272.                         case 'customer_group':
  273.                             if (in_array($column, $listColumns)) {
  274.                                 $block->addColumn('customer_group', array(
  275.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  276.                                     'type' => 'options',
  277.                                     'options' => $helper->getCustomerGroups(),
  278.                                     'header' => $helper->__('Customer Group'),
  279.                                     'index' => 'customer_group_id',
  280.                                     'align' => 'center'
  281.                                 ));
  282.                             }
  283.                             break;
  284.  
  285.                         case 'payment_method':
  286.                             if (in_array($column, $listColumns)) {
  287.                                 $block->addColumn('payment_method', array(
  288.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  289.                                     'type' => 'options',
  290.                                     'options' => $helper->getAllPaymentMethods(),
  291.                                     'header' => $helper->__('Payment Method'),
  292.                                     'index' => 'method',
  293.                                     'align' => 'center'
  294.                                 ));
  295.                             }
  296.                             break;
  297.  
  298.                         case 'base_total_refunded':
  299.                             if (in_array($column, $listColumns)) {
  300.                                 $block->addColumn('base_total_refunded', array(
  301.                                     'type' => 'currency',
  302.                                     'currency' => 'base_currency_code',
  303.                                     'header' => $helper->__('Total Refunded (Base)'),
  304.                                     'index' => 'base_total_refunded',
  305.                                     'total' => 'sum'
  306.                                 ));
  307.                             }
  308.                             break;
  309.  
  310.                         case 'total_refunded':
  311.                             if (in_array($column, $listColumns)) {
  312.                                 $block->addColumn('total_refunded', array(
  313.                                     'type' => 'currency',
  314.                                     'currency' => 'order_currency_code',
  315.                                     'header' => $helper->__('Total Refunded (Purchased)'),
  316.                                     'index' => 'total_refunded',
  317.                                     'total' => 'sum'
  318.                                 ));
  319.                             }
  320.                             break;
  321.  
  322.                         case 'shipping_method':
  323.                             if (in_array($column, $listColumns)) {
  324.                                 $block->addColumn('shipping_method', array(
  325.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  326.                                     'type' => 'options',
  327.                                     'options' => $helper->getAllShippingMethods(),
  328.                                     'filter' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_filter_shipping',
  329.                                     'header' => $helper->__('Shipping Method'),
  330.                                     'index' => 'shipping_method',
  331.                                     'align' => 'center'
  332.                                 ));
  333.                             }
  334.                             break;
  335.  
  336.                         case 'tracking_number':
  337.                             if (in_array($column, $listColumns)) {
  338.                                 $block->addColumn('tracking_number', array(
  339.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_street',
  340.                                     'type' => 'text',
  341.                                     'header' => $helper->__('Tracking Number'),
  342.                                     'index' => 'tracking_number'
  343.                                 ));
  344.                             }
  345.                             break;
  346.  
  347.                         case 'shipped':
  348.                             if (in_array($column, $listColumns)) {
  349.                                 $block->addColumn('shipped', array(
  350.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  351.                                     'type' => 'options',
  352.                                     'options' => $helper->getShippedStatuses(),
  353.                                     'header' => $helper->__('Shipped'),
  354.                                     'index' => 'shipped',
  355.                                     'align' => 'center'
  356.                                 ));
  357.                             }
  358.                             break;
  359.  
  360.                         case 'order_group':
  361.                             if (in_array($column, $listColumns)) {
  362.                                 $block->addColumn('order_group', array(
  363.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  364.                                     'type' => 'options',
  365.                                     'options' => $helper->getOrderGroups(),
  366.                                     'header' => $helper->__('Group'),
  367.                                     'index' => 'order_group_id',
  368.                                     'align' => 'center',
  369.                                 ));
  370.                             }
  371.                             break;
  372.  
  373.                         case 'qnty':
  374.                             if (in_array($column, $listColumns)) {
  375.                                 $block->addColumn('qnty', array(
  376.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_qnty',
  377.                                     'filter' => false,
  378.                                     'sortable' => false,
  379.                                     'header' => $helper->__('Qnty'),
  380.                                     'index' => 'total_qty',
  381.                                 ));
  382.                             }
  383.                             break;
  384.  
  385.                         case 'weight':
  386.                             if (in_array($column, $listColumns)) {
  387.                                 $block->addColumn('weight', array(
  388.                                     'type' => 'number',
  389.                                     'header' => $helper->__('Weight'),
  390.                                     'index' => 'weight',
  391.                                 ));
  392.                             }
  393.                             break;
  394.  
  395.                         case 'base_tax_amount':
  396.                             if (in_array($column, $listColumns)) {
  397.                                 $block->addColumn('base_tax_amount', array(
  398.                                     'type' => 'currency',
  399.                                     'currency' => 'base_currency_code',
  400.                                     'header' => $helper->__('Tax Amount (Base)'),
  401.                                     'index' => 'base_tax_amount'
  402.                                 ));
  403.                             }
  404.                             break;
  405.  
  406.                         case 'tax_amount':
  407.                             if (in_array($column, $listColumns)) {
  408.                                 $block->addColumn('tax_amount', array(
  409.                                     'type' => 'currency',
  410.                                     'currency' => 'order_currency_code',
  411.                                     'header' => $helper->__('Tax Amount (Purchased)'),
  412.                                     'index' => 'tax_amount'
  413.                                 ));
  414.                             }
  415.                             break;
  416.  
  417.                         case 'shipping_amount':
  418.                             if (in_array($column, $listColumns)) {
  419.                                 $block->addColumn('shipping_amount', array(
  420.                                     'type' => 'currency',
  421.                                     'currency' => 'order_currency_code',
  422.                                     'header' => $helper->__('Shipping Amount (Purchased)'),
  423.                                     'index' => 'shipping_amount'
  424.                                 ));
  425.                             }
  426.                             break;
  427.  
  428.                         case 'base_shipping_amount':
  429.                             if (in_array($column, $listColumns)) {
  430.                                 $block->addColumn('base_shipping_amount', array(
  431.                                     'type' => 'currency',
  432.                                     'currency' => 'base_currency_code',
  433.                                     'header' => $helper->__('Shipping Amount (Base)'),
  434.                                     'index' => 'base_shipping_amount'
  435.                                 ));
  436.                             }
  437.                             break;
  438.  
  439.                         case 'subtotal':
  440.                             if (in_array($column, $listColumns)) {
  441.                                 $block->addColumn('subtotal', array(
  442.                                     'type' => 'currency',
  443.                                     'currency' => 'order_currency_code',
  444.                                     'header' => $helper->__('Subtotal (Purchased)'),
  445.                                     'index' => 'subtotal'
  446.                                 ));
  447.                             }
  448.                             break;
  449.  
  450.                         case 'base_subtotal':
  451.                             if (in_array($column, $listColumns)) {
  452.                                 $block->addColumn('base_subtotal', array(
  453.                                     'type' => 'currency',
  454.                                     'currency' => 'base_currency_code',
  455.                                     'header' => $helper->__('Subtotal (Base)'),
  456.                                     'index' => 'base_subtotal'
  457.                                 ));
  458.                             }
  459.                             break;
  460.  
  461.                         case 'base_discount_amount':
  462.                             if (in_array($column, $listColumns)) {
  463.                                 $block->addColumn('base_discount_amount', array(
  464.                                     'type' => 'currency',
  465.                                     'currency' => 'base_currency_code',
  466.                                     'header' => $helper->__('Discount (Base)'),
  467.                                     'index' => 'base_discount_amount'
  468.                                 ));
  469.                             }
  470.                             break;
  471.  
  472.                         case 'discount_amount':
  473.                             if (in_array($column, $listColumns)) {
  474.                                 $block->addColumn('discount_amount', array(
  475.                                     'type' => 'currency',
  476.                                     'currency' => 'order_currency_code',
  477.                                     'header' => $helper->__('Discount (Purchased)'),
  478.                                     'index' => 'discount_amount'
  479.                                 ));
  480.                             }
  481.                             break;
  482.  
  483.                         case 'base_internal_credit':
  484.                             if (in_array($column, $listColumns)) {
  485.                                 if (Mage::getConfig()->getModuleConfig('MageWorx_CustomerCredit')->is('active', true)) {
  486.                                     $block->addColumn('base_internal_credit', array(
  487.                                         'type' => 'currency',
  488.                                         'currency' => 'base_currency_code',
  489.                                         'header' => $helper->__('Internal Credit (Base)'),
  490.                                         'index' => 'base_customer_credit_amount'
  491.                                     ));
  492.                                 }
  493.                             }
  494.                             break;
  495.                         case 'internal_credit':
  496.                             if (in_array($column, $listColumns)) {
  497.                                 if (Mage::getConfig()->getModuleConfig('MageWorx_CustomerCredit')->is('active', true)) {
  498.                                     $block->addColumn('internal_credit', array(
  499.                                         'type' => 'currency',
  500.                                         'currency' => 'order_currency_code',
  501.                                         'header' => $helper->__('Internal Credit (Purchased)'),
  502.                                         'index' => 'customer_credit_amount'
  503.                                     ));
  504.                                 }
  505.                             }
  506.                             break;
  507.  
  508.                         case 'billing_company':
  509.                             if (in_array($column, $listColumns)) {
  510.                                 $block->addColumn('billing_company', array(
  511.                                     'type' => 'text',
  512.                                     'header' => $helper->__('Bill to Company'),
  513.                                     'index' => 'billing_company',
  514.                                     'align' => 'center'
  515.                                 ));
  516.                             }
  517.                             break;
  518.  
  519.                         case 'shipping_company':
  520.                             if (in_array($column, $listColumns)) {
  521.                                 $block->addColumn('shipping_company', array(
  522.                                     'type' => 'text',
  523.                                     'header' => $helper->__('Ship to Company'),
  524.                                     'index' => 'shipping_company',
  525.                                     'align' => 'center'
  526.                                 ));
  527.                             }
  528.                             break;
  529.  
  530.                         case 'billing_street':
  531.                             if (in_array($column, $listColumns)) {
  532.                                 $block->addColumn('billing_street', array(
  533.                                     'type' => 'text',
  534.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_street',
  535.                                     'header' => $helper->__('Bill to Street'),
  536.                                     'index' => 'billing_street',
  537.                                     'align' => 'center'
  538.                                 ));
  539.                             }
  540.                             break;
  541.  
  542.                         case 'shipping_street':
  543.                             if (in_array($column, $listColumns)) {
  544.                                 $block->addColumn('shipping_street', array(
  545.                                     'type' => 'text',
  546.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_street',
  547.                                     'header' => $helper->__('Ship to Street'),
  548.                                     'index' => 'shipping_street',
  549.                                     'align' => 'center'
  550.                                 ));
  551.                             }
  552.                             break;
  553.  
  554.                         case 'billing_city':
  555.                             if (in_array($column, $listColumns)) {
  556.                                 $block->addColumn('billing_city', array(
  557.                                     'type' => 'text',
  558.                                     'header' => $helper->__('Bill to City'),
  559.                                     'index' => 'billing_city',
  560.                                     'align' => 'center'
  561.                                 ));
  562.                             }
  563.                             break;
  564.  
  565.                         case 'shipping_city':
  566.                             if (in_array($column, $listColumns)) {
  567.                                 $block->addColumn('shipping_city', array(
  568.                                     'type' => 'text',
  569.                                     'header' => $helper->__('Ship to City'),
  570.                                     'index' => 'shipping_city',
  571.                                     'align' => 'center'
  572.                                 ));
  573.                             }
  574.                             break;
  575.  
  576.                         case 'billing_region':
  577.                             if (in_array($column, $listColumns)) {
  578.                                 $block->addColumn('billing_region', array(
  579.                                     'type' => 'text',
  580.                                     'header' => $helper->__('Bill to State'),
  581.                                     'index' => 'billing_region',
  582.                                     'align' => 'center'
  583.                                 ));
  584.                             }
  585.                             break;
  586.  
  587.                         case 'shipping_region':
  588.                             if (in_array($column, $listColumns)) {
  589.                                 $block->addColumn('shipping_region', array(
  590.                                     'type' => 'text',
  591.                                     'header' => $helper->__('Ship to State'),
  592.                                     'index' => 'shipping_region',
  593.                                     'align' => 'center'
  594.                                 ));
  595.                             }
  596.                             break;
  597.  
  598.                         case 'billing_country':
  599.                             if (in_array($column, $listColumns)) {
  600.                                 $block->addColumn('billing_country', array(
  601.                                     'type' => 'options',
  602.                                     'options' => $helper->getCountryNames(),
  603.                                     'header' => $helper->__('Bill to Country'),
  604.                                     'index' => 'billing_country_id',
  605.                                     'align' => 'center'
  606.                                 ));
  607.                             }
  608.                             break;
  609.  
  610.                         case 'shipping_country':
  611.                             if (in_array($column, $listColumns)) {
  612.                                 $block->addColumn('shipping_country', array(
  613.                                     'type' => 'options',
  614.                                     'header' => $helper->__('Ship to Country'),
  615.                                     'options' => $helper->getCountryNames(),
  616.                                     'index' => 'shipping_country_id',
  617.                                     'align' => 'center'
  618.                                 ));
  619.                             }
  620.                             break;
  621.  
  622.                         case 'billing_postcode':
  623.                             if (in_array($column, $listColumns)) {
  624.                                 $block->addColumn('billing_postcode', array(
  625.                                     'type' => 'text',
  626.                                     'header' => $helper->__('Billing Postcode'),
  627.                                     'index' => 'billing_postcode',
  628.                                     'align' => 'center'
  629.                                 ));
  630.                             }
  631.                             break;
  632.  
  633.                         case 'shipping_postcode':
  634.                             if (in_array($column, $listColumns)) {
  635.                                 $block->addColumn('shipping_postcode', array(
  636.                                     'type' => 'text',
  637.                                     'header' => $helper->__('Shipping Postcode'),
  638.                                     'index' => 'shipping_postcode',
  639.                                     'align' => 'center'
  640.                                 ));
  641.                             }
  642.                             break;
  643.  
  644.                         case 'billing_telephone':
  645.                             if (in_array($column, $listColumns)) {
  646.                                 $block->addColumn('billing_telephone', array(
  647.                                     'type' => 'text',
  648.                                     'header' => $helper->__('Billing Telephone'),
  649.                                     'index' => 'billing_telephone',
  650.                                     'align' => 'center'
  651.                                 ));
  652.                             }
  653.                             break;
  654.  
  655.                         case 'shipping_telephone':
  656.                             if (in_array($column, $listColumns)) {
  657.                                 $block->addColumn('shipping_telephone', array(
  658.                                     'type' => 'text',
  659.                                     'header' => $helper->__('Shipping Telephone'),
  660.                                     'index' => 'shipping_telephone',
  661.                                     'align' => 'center'
  662.                                 ));
  663.                             }
  664.                             break;
  665.  
  666.                         case 'coupon_code':
  667.                             if (in_array($column, $listColumns)) {
  668.                                 $block->addColumn('coupon_code', array(
  669.                                     'type' => 'text',
  670.                                     'header' => $helper->__('Coupon Code'),
  671.                                     'align' => 'center',
  672.                                     'index' => 'coupon_code'
  673.                                 ));
  674.                             }
  675.                             break;
  676.  
  677.                         case 'is_edited':
  678.                             if (in_array($column, $listColumns)) {
  679.                                 $block->addColumn('is_edited', array(
  680.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  681.                                     'type' => 'options',
  682.                                     'options' => $helper->getEditedStatuses(),
  683.                                     'header' => $helper->__('Edited'),
  684.                                     'index' => 'is_edited',
  685.                                     'align' => 'center'
  686.                                 ));
  687.                             }
  688.                             break;
  689.  
  690.                         case 'order_comment':
  691.                             if (in_array($column, $listColumns)) {
  692.                                 $block->addColumn('order_comment', array(
  693.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_comments',
  694.                                     'header' => $helper->__('Order Comment(s)'),
  695.                                     'index' => 'order_comment'
  696.                                 ));
  697.                             }
  698.                             break;
  699.                     }
  700.                 }
  701.             }
  702.  
  703.             return;
  704.         }
  705.  
  706.         /**
  707.          * Add custom columns in sales order grid collection
  708.          *
  709.          * Event: sales_order_grid_collection_load_before
  710.          * Observer Name: mageworx_add_custom_columns_select
  711.          *
  712.          * @param $observer
  713.          * @return void
  714.          */
  715.         public function addCustomColumnsSelect($observer)
  716.         {
  717.             $helper = $this->getMwHelper();
  718.             if ($helper->isEnabled()) {
  719.                 Varien_Profiler::start('mw_addCustomColumnsSelect');
  720.                 /** @var Mage_Sales_Model_Resource_Order_Grid_Collection $orderCollection */
  721.                 $orderGridCollection = $observer->getOrderGridCollection();
  722.                 /** @var MageWorx_OrdersGrid_Model_Grid $model */
  723.                 $model = Mage::getModel('mageworx_ordersgrid/grid');
  724.                 if (Mage::app()->getRequest()->getControllerName() == 'customer') {
  725.                     if (Mage::app()->getRequest()->getActionName() != 'orders') {
  726.                         return;
  727.                     }
  728.                     $listColumns = $helper->getCustomerGridColumns();
  729.                     $model->modifyCustomerOrdersGridCollection($orderGridCollection, $listColumns);
  730.                 } else {
  731.                     $listColumns = $helper->getGridColumns();
  732.                     $model->modifyOrdersGridCollection($orderGridCollection, $listColumns);
  733.                 }
  734.                 Varien_Profiler::stop('mw_addCustomColumnsSelect');
  735.             }
  736.  
  737.             return;
  738.         }
  739.  
  740.         /**
  741.          * Update columns of sales order grid for customer (customer tab: orders)
  742.          *
  743.          * Event: core_layout_block_create_after
  744.          * Observer Name: mageworx_add_custom_columns_for_customer
  745.          *
  746.          * @param $observer
  747.          */
  748.         public function addCustomColumnsToCustomerOrdersGrid($observer)
  749.         {
  750.             $helper = $this->getMwHelper();
  751.             if (!$helper->isEnabled()) {
  752.                 return;
  753.             }
  754.             /** @var Mage_Core_Block_Abstract $block */
  755.             $block = $observer->getBlock();
  756.             if($block->getType() == 'adminhtml/widget_grid_massaction') {
  757.                 /** @var Mage_Adminhtml_Block_Customer_Edit_Tab_Orders $block */
  758.                 $block = $block->getLayout()->getBlock('adminhtml.customer.edit.tab.orders');
  759.                 if (!$block) {
  760.                     return;
  761.                 }
  762.                 $allColumns = $helper->getAllCustomerGridColumns();
  763.                 $sortedColumns = $helper->getCustomerGridColumnsSortOrder();
  764.                 if (!empty($sortedColumns)) {
  765.                     $allColumns = array_flip($sortedColumns);
  766.                 }
  767.                 $listColumns = $helper->getCustomerGridColumns();
  768.                 foreach ($allColumns as $position => $column) {
  769.                     switch ($column) {
  770.  
  771.                         /** ======================== Regular Fields ======================== */
  772.                         case 'increment_id':
  773.                             if (!in_array($column, $listColumns)) {
  774.                                 $block->removeColumn($column);
  775.                             } else {
  776.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  777.                             }
  778.                             break;
  779.  
  780.                         case 'created_at':
  781.                             if (!in_array($column, $listColumns)) {
  782.                                 $block->removeColumn($column);
  783.                             } else {
  784.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  785.                             }
  786.                             break;
  787.  
  788.                         case 'billing_name':
  789.                             if (!in_array($column, $listColumns)) {
  790.                                 $block->removeColumn($column);
  791.                             } else {
  792.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  793.                             }
  794.                             break;
  795.  
  796.                         case 'shipping_name':
  797.                             if (!in_array($column, $listColumns)) {
  798.                                 $block->removeColumn($column);
  799.                             } else {
  800.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  801.                             }
  802.                             break;
  803.  
  804.                         case 'grand_total':
  805.                             if (!in_array($column, $listColumns)) {
  806.                                 $block->removeColumn($column);
  807.                             } else {
  808.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  809.                             }
  810.                             break;
  811.  
  812.                         case 'store_id':
  813.                             if (!Mage::app()->isSingleStoreMode()) {
  814.                                 if (!in_array($column, $listColumns)) {
  815.                                     $block->removeColumn($column);
  816.                                 } else {
  817.                                     $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  818.                                 }
  819.                             }
  820.                             break;
  821.  
  822.                         case 'action':
  823.                             if (!in_array($column, $listColumns)) {
  824.                                 $block->removeColumn($column);
  825.                             } else {
  826.                                 $this->addColumnBySortPosition($position, $allColumns, $block, $column);
  827.                             }
  828.                             break;
  829.  
  830.                         /** ======================== Additional Fields ======================== */
  831.  
  832.                         case 'product_names':
  833.                             if (in_array($column, $listColumns)) {
  834.                                 $block->addColumn('product_names', array(
  835.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_products',
  836.                                     'header' => $helper->__('Product Name(s)'),
  837.                                     'index' => 'product_names',
  838.                                     'column_css_class' => 'mw-orders-grid-product_names'
  839.                                 ));
  840.                             }
  841.                             break;
  842.  
  843.                         case 'product_skus':
  844.                             if (in_array($column, $listColumns)) {
  845.                                 $block->addColumn('product_skus', array(
  846.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_products',
  847.                                     'header' => $helper->__('SKU(s)'),
  848.                                     'index' => 'skus'
  849.                                 ));
  850.                             }
  851.                             break;
  852.  
  853.                         case 'product_options':
  854.                             if (in_array($column, $listColumns)) {
  855.                                 $block->addColumn('product_options', array(
  856.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_products',
  857.                                     'header' => $helper->__('Product Option(s)'),
  858.                                     'index' => 'product_options',
  859.                                     'filter' => false,
  860.                                     'sortable' => false
  861.                                 ));
  862.                             }
  863.                             break;
  864.  
  865.                         case 'customer_email':
  866.                             $block->addColumn('customer_email', array(
  867.                                 'type' => 'text',
  868.                                 'header' => $helper->__('Customer Email'),
  869.                                 'index' => 'customer_email'
  870.                             ));
  871.                             break;
  872.  
  873.  
  874.                         case 'customer_group':
  875.                             if (in_array($column, $listColumns)) {
  876.                                 $block->addColumn('customer_group', array(
  877.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  878.                                     'type' => 'options',
  879.                                     'options' => $helper->getCustomerGroups(),
  880.                                     'header' => $helper->__('Customer Group'),
  881.                                     'index' => 'customer_group_id',
  882.                                     'align' => 'center'
  883.                                 ));
  884.                             }
  885.                             break;
  886.  
  887.  
  888.                         case 'payment_method':
  889.                             if (in_array($column, $listColumns)) {
  890.                                 $block->addColumn('payment_method', array(
  891.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  892.                                     'type' => 'options',
  893.                                     'options' => $helper->getAllPaymentMethods(),
  894.                                     'header' => $helper->__('Payment Method'),
  895.                                     'index' => 'method',
  896.                                     'align' => 'center'
  897.                                 ));
  898.                             }
  899.                             break;
  900.  
  901.                         case 'base_total_refunded':
  902.                             if (in_array($column, $listColumns)) {
  903.                                 $block->addColumn('base_total_refunded', array(
  904.                                     'type' => 'currency',
  905.                                     'currency' => 'base_currency_code',
  906.                                     'header' => $helper->__('Total Refunded (Base)'),
  907.                                     'index' => 'base_total_refunded',
  908.                                     'total' => 'sum'
  909.                                 ));
  910.                             }
  911.                             break;
  912.  
  913.                         case 'total_refunded':
  914.                             if (in_array($column, $listColumns)) {
  915.                                 $block->addColumn('total_refunded', array(
  916.                                     'type' => 'currency',
  917.                                     'currency' => 'order_currency_code',
  918.                                     'header' => $helper->__('Total Refunded (Purchased)'),
  919.                                     'index' => 'total_refunded',
  920.                                     'total' => 'sum'
  921.                                 ));
  922.                             }
  923.                             break;
  924.  
  925.                         case 'shipping_method':
  926.                             if (in_array($column, $listColumns)) {
  927.                                 $block->addColumn('shipping_method', array(
  928.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  929.                                     'type' => 'options',
  930.                                     'options' => $helper->getAllShippingMethods(),
  931.                                     'filter' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_filter_shipping',
  932.                                     'header' => $helper->__('Shipping Method'),
  933.                                     'index' => 'shipping_method',
  934.                                     'align' => 'center'
  935.                                 ));
  936.                             }
  937.                             break;
  938.  
  939.                         case 'tracking_number':
  940.                             if (in_array($column, $listColumns)) {
  941.                                 $block->addColumn('tracking_number', array(
  942.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_street',
  943.                                     'type' => 'text',
  944.                                     'header' => $helper->__('Tracking Number'),
  945.                                     'index' => 'tracking_number'
  946.                                 ));
  947.                             }
  948.                             break;
  949.  
  950.                         case 'shipped':
  951.                             if (in_array($column, $listColumns)) {
  952.                                 $block->addColumn('shipped', array(
  953.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  954.                                     'type' => 'options',
  955.                                     'options' => $helper->getShippedStatuses(),
  956.                                     'header' => $helper->__('Shipped'),
  957.                                     'index' => 'shipped',
  958.                                     'align' => 'center'
  959.                                 ));
  960.                             }
  961.                             break;
  962.  
  963.                         case 'order_group':
  964.                             if (in_array($column, $listColumns)) {
  965.                                 $block->addColumn('order_group', array(
  966.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  967.                                     'type' => 'options',
  968.                                     'options' => $helper->getOrderGroups(),
  969.                                     'header' => $helper->__('Group'),
  970.                                     'index' => 'order_group_id',
  971.                                     'align' => 'center',
  972.                                 ));
  973.                             }
  974.                             break;
  975.  
  976.                         case 'qnty':
  977.                             if (in_array($column, $listColumns)) {
  978.                                 $block->addColumn('qnty', array(
  979.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_qnty',
  980.                                     'filter' => false,
  981.                                     'sortable' => false,
  982.                                     'header' => $helper->__('Qnty'),
  983.                                     'index' => 'total_qty',
  984.                                 ));
  985.                             }
  986.                             break;
  987.  
  988.                         case 'weight':
  989.                             if (in_array($column, $listColumns)) {
  990.                                 $block->addColumn('weight', array(
  991.                                     'type' => 'number',
  992.                                     'header' => $helper->__('Weight'),
  993.                                     'index' => 'weight',
  994.                                 ));
  995.                             }
  996.                             break;
  997.  
  998.                         case 'base_tax_amount':
  999.                             if (in_array($column, $listColumns)) {
  1000.                                 $block->addColumn('base_tax_amount', array(
  1001.                                     'type' => 'currency',
  1002.                                     'currency' => 'base_currency_code',
  1003.                                     'header' => $helper->__('Tax Amount (Base)'),
  1004.                                     'index' => 'base_tax_amount'
  1005.                                 ));
  1006.                             }
  1007.                             break;
  1008.  
  1009.                         case 'tax_amount':
  1010.                             if (in_array($column, $listColumns)) {
  1011.                                 $block->addColumn('tax_amount', array(
  1012.                                     'type' => 'currency',
  1013.                                     'currency' => 'order_currency_code',
  1014.                                     'header' => $helper->__('Tax Amount (Purchased)'),
  1015.                                     'index' => 'tax_amount'
  1016.                                 ));
  1017.                             }
  1018.                             break;
  1019.  
  1020.                         case 'base_discount_amount':
  1021.                             if (in_array($column, $listColumns)) {
  1022.                                 $block->addColumn('base_discount_amount', array(
  1023.                                     'type' => 'currency',
  1024.                                     'currency' => 'base_currency_code',
  1025.                                     'header' => $helper->__('Discount (Base)'),
  1026.                                     'index' => 'base_discount_amount'
  1027.                                 ));
  1028.                             }
  1029.                             break;
  1030.  
  1031.                         case 'discount_amount':
  1032.                             if (in_array($column, $listColumns)) {
  1033.                                 $block->addColumn('discount_amount', array(
  1034.                                     'type' => 'currency',
  1035.                                     'currency' => 'order_currency_code',
  1036.                                     'header' => $helper->__('Discount (Purchased)'),
  1037.                                     'index' => 'discount_amount'
  1038.                                 ));
  1039.                             }
  1040.                             break;
  1041.  
  1042.                         case 'base_internal_credit':
  1043.                             if (in_array($column, $listColumns)) {
  1044.                                 if (Mage::getConfig()->getModuleConfig('MageWorx_CustomerCredit')->is('active', true)) {
  1045.                                     $block->addColumn('base_internal_credit', array(
  1046.                                         'type' => 'currency',
  1047.                                         'currency' => 'base_currency_code',
  1048.                                         'header' => $helper->__('Internal Credit (Base)'),
  1049.                                         'index' => 'base_customer_credit_amount'
  1050.                                     ));
  1051.                                 }
  1052.                             }
  1053.                             break;
  1054.  
  1055.                         case 'internal_credit':
  1056.                             if (in_array($column, $listColumns)) {
  1057.                                 if (Mage::getConfig()->getModuleConfig('MageWorx_CustomerCredit')->is('active', true)) {
  1058.                                     $block->addColumn('internal_credit', array(
  1059.                                         'type' => 'currency',
  1060.                                         'currency' => 'order_currency_code',
  1061.                                         'header' => $helper->__('Internal Credit (Purchased)'),
  1062.                                         'index' => 'customer_credit_amount'
  1063.                                     ));
  1064.                                 }
  1065.                             }
  1066.                             break;
  1067.  
  1068.                         case 'billing_company':
  1069.                             if (in_array($column, $listColumns)) {
  1070.                                 $block->addColumn('billing_company', array(
  1071.                                     'type' => 'text',
  1072.                                     'header' => $helper->__('Bill to Company'),
  1073.                                     'index' => 'billing_company',
  1074.                                     'align' => 'center'
  1075.                                 ));
  1076.                             }
  1077.                             break;
  1078.  
  1079.                         case 'shipping_company':
  1080.                             if (in_array($column, $listColumns)) {
  1081.                                 $block->addColumn('shipping_company', array(
  1082.                                     'type' => 'text',
  1083.                                     'header' => $helper->__('Ship to Company'),
  1084.                                     'index' => 'shipping_company',
  1085.                                     'align' => 'center'
  1086.                                 ));
  1087.                             }
  1088.                             break;
  1089.  
  1090.                         case 'billing_city':
  1091.                             if (in_array($column, $listColumns)) {
  1092.                                 $block->addColumn('billing_city', array(
  1093.                                     'type' => 'text',
  1094.                                     'header' => $helper->__('Bill to City'),
  1095.                                     'index' => 'billing_city',
  1096.                                     'align' => 'center'
  1097.                                 ));
  1098.                             }
  1099.                             break;
  1100.  
  1101.                         case 'shipping_city':
  1102.                             if (in_array($column, $listColumns)) {
  1103.                                 $block->addColumn('shipping_city', array(
  1104.                                     'type' => 'text',
  1105.                                     'header' => $helper->__('Ship to City'),
  1106.                                     'index' => 'shipping_city',
  1107.                                     'align' => 'center'
  1108.                                 ));
  1109.                             }
  1110.                             break;
  1111.  
  1112.                         case 'billing_postcode':
  1113.                             if (in_array($column, $listColumns)) {
  1114.                                 $block->addColumn('billing_postcode', array(
  1115.                                     'type' => 'text',
  1116.                                     'header' => $helper->__('Billing Postcode'),
  1117.                                     'index' => 'billing_postcode',
  1118.                                     'align' => 'center'
  1119.                                 ));
  1120.                             }
  1121.                             break;
  1122.  
  1123.                         case 'shipping_postcode':
  1124.                             if (in_array($column, $listColumns)) {
  1125.                                 $block->addColumn('shipping_postcode', array(
  1126.                                     'type' => 'text',
  1127.                                     'header' => $helper->__('Shipping Postcode'),
  1128.                                     'index' => 'shipping_postcode',
  1129.                                     'align' => 'center'
  1130.                                 ));
  1131.                             }
  1132.                             break;
  1133.  
  1134.                         case 'coupon_code':
  1135.                             if (in_array($column, $listColumns)) {
  1136.                                 $block->addColumn('coupon_code', array(
  1137.                                     'type' => 'text',
  1138.                                     'header' => $helper->__('Coupon Code'),
  1139.                                     'align' => 'center',
  1140.                                     'index' => 'coupon_code'
  1141.                                 ));
  1142.                             }
  1143.                             break;
  1144.  
  1145.                         case 'is_edited':
  1146.                             if (in_array($column, $listColumns)) {
  1147.                                 $block->addColumn('is_edited', array(
  1148.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_registry',
  1149.                                     'type' => 'options',
  1150.                                     'options' => $helper->getEditedStatuses(),
  1151.                                     'header' => $helper->__('Edited'),
  1152.                                     'index' => 'is_edited',
  1153.                                     'align' => 'center'
  1154.                                 ));
  1155.                             }
  1156.                             break;
  1157.  
  1158.                         case 'status':
  1159.                             if (in_array($column, $listColumns)) {
  1160.                                 $block->addColumn('status', array(
  1161.                                     'header' => Mage::helper('sales')->__('Status'),
  1162.                                     'index' => 'status',
  1163.                                     'type' => 'options',
  1164.                                     'width' => '70px',
  1165.                                     'options' => Mage::getSingleton('sales/order_config')->getStatuses(),
  1166.                                 ));
  1167.                             }
  1168.                             break;
  1169.  
  1170.                         case 'order_comment':
  1171.                             if (in_array($column, $listColumns)) {
  1172.                                 $block->addColumn('order_comment', array(
  1173.                                     'renderer' => 'mageworx_ordersgrid/adminhtml_sales_order_grid_renderer_comments',
  1174.                                     'header' => $helper->__('Order Comment(s)'),
  1175.                                     'index' => 'order_comment'
  1176.                                 ));
  1177.                             }
  1178.                             break;
  1179.                     }
  1180.                 }
  1181.             }
  1182.  
  1183.             return;
  1184.         }
  1185.  
  1186.         /**
  1187.          * Hide deleted (group <> 2) orders on frontend
  1188.          *
  1189.          * Event: sales_order_collection_load_before
  1190.          * Observer Name: mageworx_hide_deleted_orders
  1191.          *
  1192.          * @param $observer
  1193.          */
  1194.         public function hideDeletedOrders($observer)
  1195.         {
  1196.             $helper = $this->getMwHelper();
  1197.             if ($helper->isEnabled() && $helper->isHideDeletedOrdersForCustomers()) {
  1198.                 /** @var Mage_Sales_Model_Resource_Order_Collection $orderCollection */
  1199.                 $orderCollection = $observer->getOrderCollection();
  1200.                 $orderCollection->addFieldToFilter('order_group_id', array('neq' => '2'));
  1201.                 $orderCollection->addFieldToFilter('status',array('neq' => 'epaycc'));
  1202.             }
  1203.         }
  1204.  
  1205.         /**
  1206.          * @param int $position
  1207.          * @param array $allColumns
  1208.          * @param Mage_Adminhtml_Block_Sales_Order_Grid $block
  1209.          * @param string $column
  1210.          *
  1211.          * @return void
  1212.          */
  1213.         protected function addColumnBySortPosition($position, $allColumns, $block, $column)
  1214.         {
  1215.             if ($position > 0 && isset($allColumns[$position-1])) {
  1216.                 $thatColumn = $block->getColumn($column)->getData();
  1217.                 $block->removeColumn($column);
  1218.                 $columnBeforeThat = $allColumns[$position-1];
  1219.                 $block->addColumnAfter($column, $thatColumn, $columnBeforeThat);
  1220.             }
  1221.         }
  1222.  
  1223.         protected function getUrl($url)
  1224.         {
  1225.             return Mage::getUrl($url);
  1226.         }
  1227.  
  1228.         /**
  1229.          * @return MageWorx_OrdersGrid_Helper_Data
  1230.          */
  1231.         protected function getMwHelper()
  1232.         {
  1233.             return Mage::helper('mageworx_ordersgrid');
  1234.         }
  1235.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement