`
kirenenko04
  • 浏览: 146515 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

create rma by rma item

 
阅读更多
/**
	 * Customer create new return
	 */
	
	public function createAction()
	{
		$orderId    = (int)$this->getRequest()->getParam('order_id');
		$order      = Mage::getModel('sales/order')->load($orderId);
		if (empty($orderId)) {
			$this->_redirect('sales/order/history');
			return;
		}
		Mage::register('current_order', $order);
		
		if (!$this->_loadOrderItems($orderId)) {
			return;
		}
		
		
		if ($this->_canViewOrder($order)) {
			$post = $this->getRequest()->getPost();
			if (($post) && !empty($post['items'])) {
				$_POST['items'] = array();
				$rma_ids = array();
				foreach ($post['items'] as $post_item) {
					$_POST['items'][] = $post_item;
					try {
						$file_path = $this->saveUploadFile();
						$rmaModel = Mage::getModel('enterprise_rma/rma');
						$customerModel = Mage::getModel('customer/customer')->load($order->getCustomerId());
							
						$rmaData = array(
								'status'                => Enterprise_Rma_Model_Rma_Source_Status::STATE_PENDING,
								'date_requested'        => Mage::getSingleton('core/date')->gmtDate(),
								'order_id'              => $order->getId(),
								'order_increment_id'    => $order->getIncrementId(),
								'store_id'              => $order->getStoreId(),
								'customer_id'           => $order->getCustomerId(),
								'order_date'            => $order->getCreatedAt(),
								'file' 					=> $file_path,
								'issue_desc'			=> $post['issue_desc'],
								'customer_name'         => $order->getCustomerName(),
								'customer_custom_email' => $customerModel->getEmail(),
								'region'				=> $post['region'],
								'city'					=> $post['city'],
								'district'				=> $post['district'],
								'address'				=> $post['address'],
								'telephone'				=> $post['telephone'],
								'contact_name'			=> $post['contact_name'],
								'resolution' 			=> $post_item['resolution'],
						);
						$result = $rmaModel->setData($rmaData)->saveRma();
						if (!$result) {
							$this->_redirectError(Mage::getUrl('*/*/create', array('order_id'  => $orderId)));
							return;
						}
						$result->sendNewRmaEmail();
						if (isset($post['rma_comment']) && !empty($post['rma_comment'])) {
							Mage::getModel('enterprise_rma/rma_status_history')
							->setRmaEntityId($rmaModel->getId())
							->setComment($post['rma_comment'])
							->setIsVisibleOnFront(true)
							->setStatus($rmaModel->getStatus())
							->setCreatedAt(Mage::getSingleton('core/date')->gmtDate())
							->save();
						}
						
					} catch (Exception $e) {
						Mage::getSingleton('core/session')->addError(
						Mage::helper('enterprise_rma')->__('Cannot create New Return, try again later')
						);
						Mage::logException($e);
					}
					
					$rma_ids[] = $rmaModel->getIncrementId();
					
				}
				Mage::getSingleton('core/session')->addSuccess(
				Mage::helper('enterprise_rma')->__('Return #%s has been submitted successfully', implode(',',$rma_ids))
				);
				$this->_redirectSuccess(Mage::getUrl('rma/return/history'));
				return;
				
			}
			
			$this->loadLayout();
			$this->_initLayoutMessages('core/session');
			$this->getLayout()->getBlock('head')->setTitle(Mage::helper('enterprise_rma')->__('Create New Return'));
			if ($block = $this->getLayout()->getBlock('customer.account.link.back')) {
				$block->setRefererUrl($this->_getRefererUrl());
			}
			$this->renderLayout();
		} else {
			$this->_redirect('sales/order/history');
		}
	}

 核心中使用$_POST['items']来提取items数据。所以很简单,创建中间临时变量来分ITEM保存为RMA即可

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics