/** * Test for method unassignState status in use * * @expectedException \Magento\Framework\Exception\LocalizedException * @expectedExceptionMessage Status can't be unassigned, because it is used by existing order(s). */ public function testUnassignStateStatusUsed() { $params = ['status' => $this->model->getStatus(), 'state' => 'test_state']; $this->resourceMock->expects($this->once())->method('checkIsStateLast')->with($this->equalTo($params['state']))->will($this->returnValue(false)); $this->resourceMock->expects($this->once())->method('checkIsStatusUsed')->with($this->equalTo($params['status']))->will($this->returnValue(true)); $this->assertEquals($this->model, $this->model->unassignState($params['state'])); }
/** * Decorate values to column * * @param string $value * @param \Magento\Sales\Model\Order\Status $row * @param \Magento\Backend\Block\Widget\Grid\Column $column * @param bool $isExport * @return string * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function decorateAction($value, $row, $column, $isExport) { $cell = ''; $state = $row->getState(); if (!empty($state)) { $url = $this->getUrl('*/*/unassign', ['status' => $row->getStatus(), 'state' => $row->getState()]); $label = __('Unassign'); $cell = '<a href="' . $url . '">' . $label . '</a>'; } return $cell; }
/** * Add Fieldset with Store labels * * @param \Magento\Sales\Model\Order\Status $model * @param \Magento\Framework\Data\Form $form * @return void */ protected function _addStoresFieldset($model, $form) { $labels = $model ? $model->getStoreLabels() : []; $fieldset = $form->addFieldset('store_labels_fieldset', ['legend' => __('Store View Specific Labels'), 'class' => 'store-scope']); $renderer = $this->getLayout()->createBlock('Magento\\Backend\\Block\\Store\\Switcher\\Form\\Renderer\\Fieldset'); $fieldset->setRenderer($renderer); foreach ($this->_storeManager->getWebsites() as $website) { $fieldset->addField("w_{$website->getId()}_label", 'note', ['label' => $website->getName(), 'fieldset_html_class' => 'website']); foreach ($website->getGroups() as $group) { $stores = $group->getStores(); if (count($stores) == 0) { continue; } $fieldset->addField("sg_{$group->getId()}_label", 'note', ['label' => $group->getName(), 'fieldset_html_class' => 'store-group']); foreach ($stores as $store) { $fieldset->addField("store_label_{$store->getId()}", 'text', ['name' => 'store_labels[' . $store->getId() . ']', 'required' => false, 'label' => $store->getName(), 'value' => isset($labels[$store->getId()]) ? $labels[$store->getId()] : '', 'fieldset_html_class' => 'store']); } } } }
/** * Store labels getter * * @param \Magento\Sales\Model\Order\Status $status * @return array */ public function getStoreLabels(\Magento\Sales\Model\Order\Status $status) { $select = $this->_getWriteAdapter()->select()->from(['ssl' => $this->labelsTable], [])->where('status = ?', $status->getStatus())->columns(['store_id', 'label']); return $this->_getReadAdapter()->fetchPairs($select); }