यकीन नहीं है कि अगर आप मैग्नेटो की बुनियादी कार्यक्षमता को बढ़ाए बिना क्या हासिल कर सकते हैं। मुझे भी कुछ ऐसा ही करना था और यही मैंने किया: पहले मैंने स्वचालित क्रेडिटमेमो के लिए sales_order_creditmemo_totals को फिर से लिखा था
(हो सकता है कि आपको इसकी आवश्यकता न हो, इसलिए आप दूसरे भाग में जा सकते हैं):
मेरे मॉड्यूल में config.xml:
<blocks>
<adminhtml>
<rewrite>
...
<sales_order_creditmemo_totals>Bla_Customercredit_Block_Adminhtml_Sales_Creditmemo</sales_order_creditmemo_totals>
</rewrite>
</adminhtml>
<sales>
<rewrite>
...
<order_creditmemo_totals>Bla_Customercredit_Block_Sales_Creditmemo</order_creditmemo_totals>
</rewrite>
</sales>
</blocks>
फिर Block / Adminhtml / Sales / Creditmemo.php में
class Bla_Customercredit_Block_Adminhtml_Sales_Creditmemo extends Mage_Sales_Block_Order_Creditmemo_Totals
{
protected $_code = 'credit';
protected function _initTotals()
{
$helper = $this->getCreditsHelper();
parent::_initTotals();
$baseAmount = $this->getOrder()->getBaseCustomerCredit();
$this->addTotal(
new Varien_Object(
array(
'code' => $this->_code,
'value' => -$creditAmount,
'base_value' => -$baseAmount,
'label' => $helper->__('Bla Credit'),
)
),
'discount'
);
return $this;
}
}
जैसा कि आप देख सकते हैं कि मैंने कस्टमर क्रेडिट के ऑर्डर के लिए क्रेडिटमेमो बनाने के लिए ऐसा किया है, इसलिए मैंने sales_order_totals और sales_order_invoice_totals को भी फिर से लिखा है लेकिन मुझे लगता है कि आपको ऐसा करने की आवश्यकता नहीं है।
दूसरा:
मैंने मैन्युअल क्रेडिटमेमो क्रेटियन के दौरान कुछ कार्यक्षमता जोड़ने के लिए अपना खुद का टेम्पलेट भी जोड़ा, इसलिए व्यवस्थापक यह तय कर सकता है कि इसे कैसे उत्पन्न किया जाए। उसके लिए मैंने app / design / adminhtml / default / default / टेम्पलेट / MODULE_NAME / ऑर्डर / creditmemo / create / items.phtml के तहत एक आइटम बनाया। इस phtml में मैंने कुछ इनपुट फ़ील्ड्स जोड़कर efault मानों को बदल दिया। मैंने Company_CustomerCredit_Adminhtml_CustomerController के अंतर्गत व्यवस्थापक नियंत्रक में अपने मॉड्यूल में भी जोड़ा
require_once 'Mage/Adminhtml/controllers/CustomerController.php';
class Bla_Customercredit_Adminhtml_CustomerController extends Mage_Adminhtml_CustomerController
{
/**
* Overload to save customer credits, then call
* parent::saveAction()
*/
public function saveAction()
{
$data = $this->getRequest()->getPost();
if($data && $data['bla_credits'])
{
if(!empty($data['bla_credits']['id']))
{
$model = Mage::getModel('credits/credits')->load($data['bla_credits']['id']);
}
else
{
unset($data['bla_credits']['id']);
$model = Mage::getModel('credits/credits');
}
try
{
$model->setData($data['bla_credits']);
$model->save();
}
catch(Exception $e)
{
}
}
parent::saveAction();
}
}