Как получить список идентификаторов заказов для авторизованного клиента и создать поле выбора в форме в magento?

Я новичок в magento. Я создал пользовательский модуль, в котором я хочу отобразить поле выбора для перечисления идентификаторов заказов для конкретного зарегистрированного в заказах клиента. Я изо всех сил пытаюсь сделать это.

Мой код формы здесь:

                <?php
class Blazedream_CustomerComplaints_Block_Complaints_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
{
public function getOrderData()
{
$orders = Mage::getResourceModel('sales/order_collection')
->addFieldToSelect('*')
->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId())
->addFieldToFilter('state', array('in' => Mage::getSingleton('sales/order_config')->getVisibleOnFrontStates()))
->setOrder('created_at', 'desc');
$this->setOrders($orders);
foreach ($orders as $order):
return $order->getRealOrderId();
endforeach;
}

protected function _prepareForm()
{
$customer = Mage::getSingleton('customer/session')->getCustomer();
$customerId=$customer->getId();
$cus_name=$customer->getName();
$emailId=$customer->getEmail();
$form = new Varien_Data_Form();
$this->setForm($form);
$fieldset = $form->addFieldset("customercomplaints_form", array("legend"=>Mage::helper("customercomplaints")->__("Item information")));

$three_columns = "col-xs-12 col-sm-4 col-md-4 col-lg-4";
$one_column = "col-xs-12 col-sm-12 col-md-12 col-lg-12";

$fieldset->addField("customer_complaints_id", "hidden", array(
"label" => Mage::helper("customercomplaints")->__("Id"),
"name" => "customer_complaints_id",
));

$fieldset->addField("name", "text", array(
"label" => Mage::helper("customercomplaints")->__("Name"),
"name" => "name",
"class"=> "required-entry",
'readonly'=>true,
'required' => true,
'value' =>$cus_name,
'container_class' => $three_columns
));
$fieldset->addField('order_id1', 'select', array(
'name' => 'order_id1',
'label' => 'Order Id1',
'values' => $this->getOrderData(),
));

if (Mage::getSingleton("adminhtml/session")->getComplaintsData())
{
$form->setValues(Mage::getSingleton("adminhtml/session")->getComplaintsData());
Mage::getSingleton("adminhtml/session")->setComplaintsData(null);
}
elseif(Mage::registry("complaints_data")) {
$form->setValues(Mage::registry("complaints_data")->getData());
}
return parent::_prepareForm();
}
}

Мой файл просмотра:

     <div class="return-policy vendor-suggestion-main my-account">
<div class="page-title">
<h1>Complaints</h1>
</div>
<form action="<?php echo $this->getSaveUrl() ?>" method="post" id="customer_complaints_form" enctype="multipart/form-data">
<input type="hidden" name="form_key" value="<?php echo Mage::getSingleton('core/session')->getFormKey();?>" />
<?php echo $this->getBlockHtml('formkey')?>
<div style="display:none"></div>
<?php echo $this->getChildHtml("complaints_edit_form") ?>

<div class="return-order-submit">
<p class="content-buttons form-buttons">
<?php echo $this->getSaveButtonHtml() ?>
</p>
</div>
</form>

</div>

<script type="text/javascript">

var customerComplaints = new VarienForm('customer_complaints_form', true); // '<?php echo $this->getValidationUrl() ?>');
customerComplaints._processValidationResult = function(transport) {
var response = transport.responseText.evalJSON();
if (response.error){
if (response.attribute && $(response.attribute)) {
$(response.attribute).setHasError(true, customerComplaints);
Validation.ajaxError($(response.attribute), response.message);
if (!Prototype.Browser.IE){
$(response.attribute).focus();
}
}
else if ($('messages')) {
$('messages').innerHTML = '<ul class="messages"><li class="error-msg"><ul><li>' + response.message + '</li></ul></li></ul>';
}
}
else{
customerComplaints._submit();
}
};

</script>

Может кто-нибудь сказать мне, как это сделать ??

Заранее спасибо.

0

Решение

Я создал такую ​​функцию:

  public function getOrderData()
{
$orders = Mage::getResourceModel('sales/order_collection')
->addFieldToSelect('*')
->addFieldToFilter('customer_id', Mage::getSingleton('customer/session')->getCustomer()->getId())
->setOrder('created_at', 'desc');
$this->setOrders($orders);
$i = 1;
$data[] = '--- Please Select ---';
foreach ($orders as $order):
$data[$order->getRealOrderId()] = $order->getRealOrderId();
$i++;
endforeach;
return $data;
}

Затем я вызвал эту функцию в моем наборе полей формы следующим образом:

 $fieldset->addField('order_id', 'select', array(
"label" => Mage::helper("customercomplaints")->__("Order Id"),
'name' => 'order_id',
"class"=> "required-entry",
'values' => $this->getOrderData(),
'container_class' => $three_columns
));

Я получил выпадающий список с заказанным заказчиком идентификатором заказа

0

Другие решения

Других решений пока нет …