本文整理汇总了PHP中Magento\Shipping\Controller\Adminhtml\Order\ShipmentLoader类的典型用法代码示例。如果您正苦于以下问题:PHP ShipmentLoader类的具体用法?PHP ShipmentLoader怎么用?PHP ShipmentLoader使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ShipmentLoader类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: execute
/**
* Add comment to shipment history
*
* @return void
*/
public function execute()
{
try {
$this->getRequest()->setParam('shipment_id', $this->getRequest()->getParam('id'));
$data = $this->getRequest()->getPost('comment');
if (empty($data['comment'])) {
throw new \Magento\Framework\Model\Exception(__("The comment text field cannot be empty."));
}
$this->_title->add(__('Shipments'));
$shipment = $this->shipmentLoader->load($this->_request);
$shipment->addComment($data['comment'], isset($data['is_customer_notified']), isset($data['is_visible_on_front']));
$shipment->sendUpdateEmail(!empty($data['is_customer_notified']), $data['comment']);
$shipment->save();
$this->_view->loadLayout(false);
$response = $this->_view->getLayout()->getBlock('shipment_comments')->toHtml();
} catch (\Magento\Framework\Model\Exception $e) {
$response = array('error' => true, 'message' => $e->getMessage());
} catch (\Exception $e) {
$response = array('error' => true, 'message' => __('Cannot add new comment.'));
}
if (is_array($response)) {
$response = $this->_objectManager->get('Magento\\Core\\Helper\\Data')->jsonEncode($response);
$this->getResponse()->representJson($response);
} else {
$this->getResponse()->setBody($response);
}
}
示例2: execute
/**
* Remove tracking number from shipment
*
* @return void
*/
public function execute()
{
$trackId = $this->getRequest()->getParam('track_id');
$track = $this->_objectManager->create('Magento\\Sales\\Model\\Order\\Shipment\\Track')->load($trackId);
if ($track->getId()) {
try {
$this->_title->add(__('Shipments'));
$shipment = $this->shipmentLoader->load($this->_request);
if ($shipment) {
$track->delete();
$this->_view->loadLayout();
$response = $this->_view->getLayout()->getBlock('shipment_tracking')->toHtml();
} else {
$response = array('error' => true, 'message' => __('Cannot initialize shipment for delete tracking number.'));
}
} catch (\Exception $e) {
$response = array('error' => true, 'message' => __('Cannot delete tracking number.'));
}
} else {
$response = array('error' => true, 'message' => __('Cannot load track with retrieving identifier.'));
}
if (is_array($response)) {
$response = $this->_objectManager->get('Magento\\Core\\Helper\\Data')->jsonEncode($response);
$this->getResponse()->representJson($response);
} else {
$this->getResponse()->setBody($response);
}
}
示例3: execute
/**
* Add new tracking number action
*
* @return void
* @throws \Magento\Framework\Model\Exception
*/
public function execute()
{
try {
$carrier = $this->getRequest()->getPost('carrier');
$number = $this->getRequest()->getPost('number');
$title = $this->getRequest()->getPost('title');
if (empty($carrier)) {
throw new \Magento\Framework\Model\Exception(__('Please specify a carrier.'));
}
if (empty($number)) {
throw new \Magento\Framework\Model\Exception(__('Please enter a tracking number.'));
}
$this->_title->add(__('Shipments'));
$shipment = $this->shipmentLoader->load($this->_request);
if ($shipment) {
$track = $this->_objectManager->create('Magento\\Sales\\Model\\Order\\Shipment\\Track')->setNumber($number)->setCarrierCode($carrier)->setTitle($title);
$shipment->addTrack($track)->save();
$this->_view->loadLayout();
$response = $this->_view->getLayout()->getBlock('shipment_tracking')->toHtml();
} else {
$response = array('error' => true, 'message' => __('Cannot initialize shipment for adding tracking number.'));
}
} catch (\Magento\Framework\Model\Exception $e) {
$response = array('error' => true, 'message' => $e->getMessage());
} catch (\Exception $e) {
$response = array('error' => true, 'message' => __('Cannot add tracking number.'));
}
if (is_array($response)) {
$response = $this->_objectManager->get('Magento\\Core\\Helper\\Data')->jsonEncode($response);
$this->getResponse()->representJson($response);
} else {
$this->getResponse()->setBody($response);
}
}
示例4: execute
/**
* Print label for one specific shipment
*
* @return ResponseInterface|void
*/
public function execute()
{
try {
$shipment = $this->shipmentLoader->load($this->_request);
$labelContent = $shipment->getShippingLabel();
if ($labelContent) {
$pdfContent = null;
if (stripos($labelContent, '%PDF-') !== false) {
$pdfContent = $labelContent;
} else {
$pdf = new \Zend_Pdf();
$page = $this->labelGenerator->createPdfPageFromImageString($labelContent);
if (!$page) {
$this->messageManager->addError(__('We don\'t recognize or support the file extension in this shipment: %1.', $shipment->getIncrementId()));
}
$pdf->pages[] = $page;
$pdfContent = $pdf->render();
}
return $this->_fileFactory->create('ShippingLabel(' . $shipment->getIncrementId() . ').pdf', $pdfContent, \Magento\Framework\App\Filesystem::VAR_DIR, 'application/pdf');
}
} catch (\Magento\Framework\Model\Exception $e) {
$this->messageManager->addError($e->getMessage());
} catch (\Exception $e) {
$this->_objectManager->get('Magento\\Framework\\Logger')->logException($e);
$this->messageManager->addError(__('An error occurred while creating shipping label.'));
}
$this->_redirect('adminhtml/order_shipment/view', array('shipment_id' => $this->getRequest()->getParam('shipment_id')));
}
示例5: execute
/**
* Save shipment
* We can save only new shipment. Existing shipments are not editable
*
* @return void
*/
public function execute()
{
$data = $this->getRequest()->getPost('shipment');
if (!empty($data['comment_text'])) {
$this->_objectManager->get('Magento\\Backend\\Model\\Session')->setCommentText($data['comment_text']);
}
try {
$shipment = $this->shipmentLoader->load($this->_request);
if (!$shipment) {
$this->_forward('noroute');
return;
}
$shipment->register();
$comment = '';
if (!empty($data['comment_text'])) {
$shipment->addComment($data['comment_text'], isset($data['comment_customer_notify']), isset($data['is_visible_on_front']));
if (isset($data['comment_customer_notify'])) {
$comment = $data['comment_text'];
}
}
if (!empty($data['send_email'])) {
$shipment->setEmailSent(true);
}
$shipment->getOrder()->setCustomerNoteNotify(!empty($data['send_email']));
$responseAjax = new \Magento\Framework\Object();
$isNeedCreateLabel = isset($data['create_shipping_label']) && $data['create_shipping_label'];
if ($isNeedCreateLabel && $this->labelGenerator->create($shipment, $this->_request)) {
$responseAjax->setOk(true);
}
$this->_saveShipment($shipment);
$shipment->sendEmail(!empty($data['send_email']), $comment);
$shipmentCreatedMessage = __('The shipment has been created.');
$labelCreatedMessage = __('You created the shipping label.');
$this->messageManager->addSuccess($isNeedCreateLabel ? $shipmentCreatedMessage . ' ' . $labelCreatedMessage : $shipmentCreatedMessage);
$this->_objectManager->get('Magento\\Backend\\Model\\Session')->getCommentText(true);
} catch (\Magento\Framework\Model\Exception $e) {
if ($isNeedCreateLabel) {
$responseAjax->setError(true);
$responseAjax->setMessage($e->getMessage());
} else {
$this->messageManager->addError($e->getMessage());
$this->_redirect('*/*/new', array('order_id' => $this->getRequest()->getParam('order_id')));
}
} catch (\Exception $e) {
$this->_objectManager->get('Magento\\Framework\\Logger')->logException($e);
if ($isNeedCreateLabel) {
$responseAjax->setError(true);
$responseAjax->setMessage(__('An error occurred while creating shipping label.'));
} else {
$this->messageManager->addError(__('Cannot save shipment.'));
$this->_redirect('*/*/new', array('order_id' => $this->getRequest()->getParam('order_id')));
}
}
if ($isNeedCreateLabel) {
$this->getResponse()->representJson($responseAjax->toJson());
} else {
$this->_redirect('sales/order/view', array('order_id' => $shipment->getOrderId()));
}
}
示例6: execute
/**
* Create pdf document with information about packages
*
* @return ResponseInterface|void
*/
public function execute()
{
$shipment = $this->shipmentLoader->load($this->_request);
if ($shipment) {
$pdf = $this->_objectManager->create('Magento\\Shipping\\Model\\Order\\Pdf\\Packaging')->getPdf($shipment);
return $this->_fileFactory->create('packingslip' . $this->_objectManager->get('Magento\\Framework\\Stdlib\\DateTime\\DateTime')->date('Y-m-d_H-i-s') . '.pdf', $pdf->render(), \Magento\Framework\App\Filesystem::VAR_DIR, 'application/pdf');
} else {
$this->_forward('noroute');
}
}
示例7: execute
/**
* Shipment information page
*
* @return void
*/
public function execute()
{
$this->_title->add(__('Shipments'));
$shipment = $this->shipmentLoader->load($this->_request);
if ($shipment) {
$this->_title->add("#" . $shipment->getIncrementId());
$this->_view->loadLayout();
$this->_view->getLayout()->getBlock('sales_shipment_view')->updateBackButtonUrl($this->getRequest()->getParam('come_from'));
$this->_setActiveMenu('Magento_Sales::sales_order');
$this->_view->renderLayout();
} else {
$this->_forward('noroute');
}
}
示例8: testEmail
public function testEmail()
{
$shipmentId = 1000012;
$orderId = 10003;
$tracking = [];
$shipment = ['items' => []];
$orderShipment = $this->getMock('Magento\\Sales\\Model\\Order\\Shipment', ['load', 'save', '__wakeup'], [], '', false);
$shipmentNotifierClassName = 'Magento\\Shipping\\Model\\ShipmentNotifier';
$shipmentNotifier = $this->getMock($shipmentNotifierClassName, ['notify', '__wakeup'], [], '', false);
$this->request->expects($this->any())->method('getParam')->will($this->returnValueMap([['order_id', null, $orderId], ['shipment_id', null, $shipmentId], ['shipment', null, $shipment], ['tracking', null, $tracking]]));
$this->shipmentLoader->expects($this->once())->method('setShipmentId')->with($shipmentId);
$this->shipmentLoader->expects($this->once())->method('setOrderId')->with($orderId);
$this->shipmentLoader->expects($this->once())->method('setShipment')->with($shipment);
$this->shipmentLoader->expects($this->once())->method('setTracking')->with($tracking);
$this->shipmentLoader->expects($this->once())->method('load')->will($this->returnValue($orderShipment));
$orderShipment->expects($this->once())->method('save')->will($this->returnSelf());
$this->objectManager->expects($this->once())->method('create')->with($shipmentNotifierClassName)->will($this->returnValue($shipmentNotifier));
$shipmentNotifier->expects($this->once())->method('notify')->with($orderShipment)->will($this->returnValue(true));
$this->messageManager->expects($this->once())->method('addSuccess')->with('You sent the shipment.');
$path = '*/*/view';
$arguments = ['shipment_id' => $shipmentId];
$this->prepareRedirect($path, $arguments, 0);
$this->shipmentEmail->execute();
$this->assertEquals($this->response, $this->shipmentEmail->getResponse());
}
示例9: testExecute
public function testExecute()
{
$shipmentId = 1000012;
$orderId = 10003;
$tracking = [];
$shipmentData = ['items' => [], 'send_email' => ''];
$shipment = $this->getMock('Magento\\Sales\\Model\\Order\\Shipment', ['load', 'save', 'register', 'getOrder', 'getOrderId', '__wakeup'], [], '', false);
$this->request->expects($this->any())->method('getParam')->will($this->returnValueMap([['order_id', null, $orderId], ['shipment_id', null, $shipmentId], ['shipment', null, $shipmentData], ['tracking', null, $tracking]]));
$this->shipmentLoader->expects($this->any())->method('setShipmentId')->with($shipmentId);
$this->shipmentLoader->expects($this->any())->method('setOrderId')->with($orderId);
$this->shipmentLoader->expects($this->any())->method('setShipment')->with($shipmentData);
$this->shipmentLoader->expects($this->any())->method('setTracking')->with($tracking);
$this->shipmentLoader->expects($this->once())->method('load')->will($this->returnValue($shipment));
$this->session->expects($this->once())->method('getCommentText')->with(true)->will($this->returnValue(''));
$this->objectManager->expects($this->atLeastOnce())->method('get')->with('Magento\\Backend\\Model\\Session')->will($this->returnValue($this->session));
$this->view->expects($this->once())->method('loadLayout')->will($this->returnSelf());
$this->view->expects($this->once())->method('renderLayout')->will($this->returnSelf());
$this->view->expects($this->any())->method('getPage')->willReturn($this->resultPageMock);
$this->resultPageMock->expects($this->any())->method('getConfig')->willReturn($this->pageConfigMock);
$this->pageConfigMock->expects($this->any())->method('getTitle')->willReturn($this->pageTitleMock);
$layout = $this->getMock('Magento\\Framework\\View\\Layout\\Element\\Layout', ['getBlock'], [], '', false);
$menuBlock = $this->getMock('Magento\\Framework\\View\\Element\\BlockInterface', ['toHtml', 'setActive', 'getMenuModel'], [], '', false);
$menuModel = $this->getMockBuilder('Magento\\Backend\\Model\\Menu')->disableOriginalConstructor()->getMock();
$itemId = 'Magento_Sales::sales_order';
$parents = [new \Magento\Framework\DataObject(['title' => 'title1']), new \Magento\Framework\DataObject(['title' => 'title2']), new \Magento\Framework\DataObject(['title' => 'title3'])];
$menuModel->expects($this->once())->method('getParentItems')->with($itemId)->will($this->returnValue($parents));
$menuBlock->expects($this->once())->method('setActive')->with($itemId);
$menuBlock->expects($this->once())->method('getMenuModel')->will($this->returnValue($menuModel));
$this->view->expects($this->once())->method('getLayout')->will($this->returnValue($layout));
$layout->expects($this->once())->method('getBlock')->with('menu')->will($this->returnValue($menuBlock));
$this->assertNull($this->newAction->execute());
}
示例10: testExecuteLoadShipmentFail
/**
* Run test execute method (fail load shipment model)
*/
public function testExecuteLoadShipmentFail()
{
$this->shipmentLoaderMock->expects($this->once())->method('load')->willThrowException(new \Magento\Framework\Exception\LocalizedException(__('message')));
$this->messageManagerMock->expects($this->once())->method('addError')->will($this->returnSelf());
$this->redirectSection();
$this->assertNull($this->controller->execute());
}
示例11: execute
/**
* Shipment create page
*
* @return void
*/
public function execute()
{
$this->_title->add(__('Shipments'));
$shipment = $this->shipmentLoader->load($this->_request);
if ($shipment) {
$this->_title->add(__('New Shipment'));
$comment = $this->_objectManager->get('Magento\\Backend\\Model\\Session')->getCommentText(true);
if ($comment) {
$shipment->setCommentText($comment);
}
$this->_view->loadLayout();
$this->_setActiveMenu('Magento_Sales::sales_order');
$this->_view->renderLayout();
} else {
$this->_redirect('*/order/view', array('order_id' => $this->getRequest()->getParam('order_id')));
}
}
示例12: loadShipment
protected function loadShipment($orderId, $shipmentId, $shipment, $tracking, $comeFrom, $returnShipment)
{
$valueMap = [['order_id', null, $orderId], ['shipment_id', null, $shipmentId], ['shipment', null, $shipment], ['tracking', null, $tracking], ['come_from', null, $comeFrom]];
$this->requestMock->expects($this->any())->method('getParam')->willReturnMap($valueMap);
$this->shipmentLoaderMock->expects($this->once())->method('setOrderId')->with($orderId);
$this->shipmentLoaderMock->expects($this->once())->method('setShipmentId')->with($shipmentId);
$this->shipmentLoaderMock->expects($this->once())->method('setShipment')->with($shipment);
$this->shipmentLoaderMock->expects($this->once())->method('setTracking')->with($tracking);
$this->shipmentLoaderMock->expects($this->once())->method('load')->willReturn($returnShipment);
}
示例13: shipmentTrackingSave
public function shipmentTrackingSave(\Praxigento\Odoo\Api\Data\SaleOrder\Shipment\Tracking $data)
{
$result = false;
/* replicate all data in one transaction */
$def = $this->_manTrans->begin();
try {
$orderIdMage = $data->getSaleOrderIdMage();
$trackNumber = $data->getData('shipment/trackingInfo/trackingNumber');
$shippingMethodCode = $data->getData('shipment/trackingInfo/shippingCode');
$this->_shipmentLoader->setOrderId($orderIdMage);
/** @var \Magento\Sales\Model\Order\Shipment $shipment */
$shipment = $this->_shipmentLoader->load();
if ($shipment) {
$carrierCode = $this->_manBusCodes->getMagCodeForCarrier($shippingMethodCode);
$title = $this->_manBusCodes->getTitleForCarrier($shippingMethodCode);
$track = $this->_manObj->create(\Magento\Sales\Model\Order\Shipment\Track::class);
$track->setNumber($trackNumber);
$track->setCarrierCode($carrierCode);
$track->setTitle($title);
$shipment->addTrack($track);
$shipment->register();
$shipment->save();
$order = $shipment->getOrder();
$invoice = $this->_manInvoice->prepareInvoice($order);
$invoice->register();
$invoice->save();
$order->save();
$this->_manTrans->commit($def);
$result = true;
}
} catch (\Exception $e) {
$msg = 'Product replication from Odoo is failed. Error: ' . $e->getMessage();
$this->_logger->emergency($msg);
$traceStr = $e->getTraceAsString();
$this->_logger->emergency($traceStr);
throw $e;
} finally {
// transaction will be rolled back if commit is not done (otherwise - do nothing)
$this->_manTrans->end($def);
}
return $result;
}
示例14: execute
/**
* Create shipping label action for specific shipment
*
* @return void
*/
public function execute()
{
$response = new \Magento\Framework\Object();
try {
$shipment = $this->shipmentLoader->load($this->_request);
if ($this->labelGenerator->create($shipment, $this->_request)) {
$shipment->save();
$this->messageManager->addSuccess(__('You created the shipping label.'));
$response->setOk(true);
}
} catch (\Magento\Framework\Model\Exception $e) {
$response->setError(true);
$response->setMessage($e->getMessage());
} catch (\Exception $e) {
$this->_objectManager->get('Magento\\Framework\\Logger')->logException($e);
$response->setError(true);
$response->setMessage(__('An error occurred while creating shipping label.'));
}
$this->getResponse()->representJson($response->toJson());
}
示例15: execute
/**
* Send email with shipment data to customer
*
* @return void
*/
public function execute()
{
try {
$shipment = $this->shipmentLoader->load($this->_request);
if ($shipment) {
$shipment->sendEmail(true)->setEmailSent(true)->save();
$historyItem = $this->_objectManager->create('Magento\\Sales\\Model\\Resource\\Order\\Status\\History\\Collection')->getUnnotifiedForInstance($shipment, \Magento\Sales\Model\Order\Shipment::HISTORY_ENTITY_NAME);
if ($historyItem) {
$historyItem->setIsCustomerNotified(1);
$historyItem->save();
}
$this->messageManager->addSuccess(__('You sent the shipment.'));
}
} catch (\Magento\Framework\Model\Exception $e) {
$this->messageManager->addError($e->getMessage());
} catch (\Exception $e) {
$this->messageManager->addError(__('Cannot send shipment information.'));
}
$this->_redirect('*/*/view', array('shipment_id' => $this->getRequest()->getParam('shipment_id')));
}