在这里,我将在问题中添加解决方案,以防其他人有相同的问题/扩展。我还将代码更新发送到[链接http://www.boostmyshop.com/english/magento/product-redurn-rma.html 为了增加对RMA扩展的可能升级。

我需要添加使用我购买的上述扩展名与其嵌入式ERP解决方案一起在Magento CE 1.7中创建RMA的登录名称的名称。

这是代码:

将其添加到admincontroller.php(不确定它是否真的是必要的)

    public function getUser()    {  

   return Mage::getSingleton('admin/session')->getUser();   

}

在info.phtml的顶部添加以下内容:

 <?php $user = Mage::getSingleton('admin/session');$userName = $user->getUser()>getUsername();?>

然后在第10行附近

<input name="data[rma_admin]" type="hidden" value="<?php echo $userName ?>" />

然后创建一个额外的TR/TD,然后添加以下内容:

       <tr><td class="label"><?php echo $this->__('Updated by'); ?></td><td class="input-ele"><?php echo $this->getRma()->getrma_admin(); ?> </td> </tr>

您还必须添加附加列以在grid.php文件中显示admin名称

 $this->addColumn('rma_admin', array(
'header'=> Mage::helper('ProductReturn')->__('Updated by'),
'width' => '100px', 
'type'  => 'text', 
'index' => 'rma_admin', )); 

最后,在RMA数据库表中,一个名为“ RMA_ADMIN”的新列

完毕!!!

有帮助吗?

解决方案

此答案是指eTterprise_RMA模块,而不是OP使用的CE扩展名。

据我了解,当后端创建RMA时,您要做的是在RMA模型上设置管理用户值。
您已经添加了列 admin_user (或您用作属性代码的任何内容) enterprise_rma 桌子。

与其使用控制器覆盖来实现您的目标,不如使用事件观察者更加兼容和升级。

不幸的是,RMA模型未设置其自己的事件前缀,因此您必须观察通用器 core_abstract_save_before 事件,并在观察者方法中检查对象实例类型。

为此,您首先需要在模块中定义它 etc/config.xml 文件。

<global>
    <models>
        <myModul_productReturn>
            <class>MyModul_ProductReturn_Model</class>
        </myModul_productReturn>
    </models>
</global>
<adminhtml>
    <events>
        <core_abstract_save_before>
            <observers>
                <myModul_productReturn>
                    <class>myModul_productReturn/observer</class>
                    <method>coreAbstractSaveBefore</method>
                </myModul_productReturn>
            </observers>
        </core_abstract_save_before>
    </events>
</adminhtml>

然后,在观察者类中:

class MyModul_ProductReturn_Model_Observer
{
    public function coreAbstractSaveBefore(Varien_Event_Observer $observer)
    {
        $model = $observer->getObject();
        if ($model instanceof Enterprise_Rma_Model_Rma) {
            /** @var Enterprise_Rma_Model_Rma $model */
            if ($model->isObjectNew()) {
                /** @var Mage_Admin_Model_User $admin */
                $admin = Mage::getSingleton('admin/session')->getUser();
                if ($admin && $admin->getId()) {
                    $model->setAdminUser($admin->getUsername());
                }
            }
        }
    }
}

现在,每次保存新的RMA时,都会设置管理员的用户名。

许可以下: CC-BY-SA归因
scroll top