Skip to content

Commit

Permalink
Add option to delete reservations in reservations grid
Browse files Browse the repository at this point in the history
  • Loading branch information
mstrzyzewski authored and cieslix committed Sep 10, 2020
1 parent 2eaa1d9 commit c2d9883
Show file tree
Hide file tree
Showing 5 changed files with 159 additions and 8 deletions.
7 changes: 5 additions & 2 deletions Controller/Adminhtml/Orders/Delete.php
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class Delete extends Action
private $orderLogRepository;

/**
* Import constructor.
* Delete constructor.
* @param Action\Context $context
* @param Logger $logger
* @param Filter $filter
Expand Down Expand Up @@ -75,7 +75,10 @@ public function execute()
$checkoutFormId = $item->getCheckoutFormId();
try {
$this->orderLogRepository->deleteByCheckoutFormId($checkoutFormId);
$this->logger->info("Order log with id '{$checkoutFormId}' has been successfully deleted");
$this->logger->info(__(
"Order log with checkout form ID: %1 has been successfully deleted",
$checkoutFormId
));
$this->messageManager->addSuccessMessage(__(
"Order log with checkout form ID: %1 has been successfully deleted",
$checkoutFormId
Expand Down
103 changes: 103 additions & 0 deletions Controller/Adminhtml/Reservations/Delete.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
<?php

declare(strict_types=1);

namespace Macopedia\Allegro\Controller\Adminhtml\Reservations;

use Macopedia\Allegro\Logger\Logger;
use Macopedia\Allegro\Model\Reservation;
use Macopedia\Allegro\Model\ResourceModel\Reservation\Collection;
use Magento\Backend\App\Action;
use Magento\Framework\App\ResponseInterface;
use Magento\Framework\Controller\Result\Redirect;
use Magento\Framework\Controller\ResultFactory;
use Magento\Framework\Controller\ResultInterface;
use Magento\Framework\Exception\LocalizedException;
use Magento\Ui\Component\MassAction\Filter;
use Macopedia\Allegro\Model\ResourceModel\Reservation\CollectionFactory;
use Macopedia\Allegro\Model\OrderImporter\AllegroReservation;
use Macopedia\Allegro\Model\CheckoutFormRepository;

/**
* Delete controller class
*/
class Delete extends Action
{
/** @var Logger */
private $logger;

/** @var Filter */
private $filter;

/** @var CollectionFactory */
private $collectionFactory;

/** @var AllegroReservation */
private $allegroReservation;

/** @var CheckoutFormRepository */
private $checkoutFormRepository;

/**
* Delete constructor.
* @param Action\Context $context
* @param Logger $logger
* @param Filter $filter
* @param CollectionFactory $collectionFactory
* @param AllegroReservation $allegroReservation
* @param CheckoutFormRepository $checkoutFormRepository
*/
public function __construct(
Action\Context $context,
Logger $logger,
Filter $filter,
CollectionFactory $collectionFactory,
AllegroReservation $allegroReservation,
CheckoutFormRepository $checkoutFormRepository
) {
parent::__construct($context);
$this->logger = $logger;
$this->filter = $filter;
$this->collectionFactory = $collectionFactory;
$this->allegroReservation = $allegroReservation;
$this->checkoutFormRepository = $checkoutFormRepository;
}

/**
* @return ResponseInterface|Redirect|ResultInterface
*/
public function execute()
{
$result = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
$result->setPath('*/*/');

try {
/** @var Collection $collection */
$collection = $this->filter->getCollection($this->collectionFactory->create());
} catch (LocalizedException $e) {
$this->messageManager->addExceptionMessage($e);
return $result;
}
/** @var Reservation $item */
foreach ($collection as $item) {
$checkoutFormId = $item->getCheckoutFormId();
$reservationId = $item->getReservationId();
try {
$checkoutForm = $this->checkoutFormRepository->get($checkoutFormId);
$this->allegroReservation->compensateReservation($checkoutForm);
$this->logger->info(__("Reservation with ID: %1 has been successfully deleted", $reservationId));
$this->messageManager->addSuccessMessage(__(
"Reservation with ID: %1 has been successfully deleted",
$reservationId
));
} catch (\Exception $e) {
$this->logger->exception($e);
$this->messageManager->addErrorMessage(__(
"Something went wrong while trying to delete reservation with ID: %1",
$reservationId
));
}
}
return $result;
}
}
7 changes: 7 additions & 0 deletions etc/di.xml
Original file line number Diff line number Diff line change
Expand Up @@ -130,4 +130,11 @@
</arguments>
</virtualType>

<virtualType name="Macopedia\Allegro\Model\ResourceModel\Reservation\Collection" type="Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult">
<arguments>
<argument name="mainTable" xsi:type="string">allegro_reservations</argument>
<argument name="resourceModel" xsi:type="string">Macopedia\Allegro\Model\ResourceModel\Reservation</argument>
</arguments>
</virtualType>

</config>
10 changes: 9 additions & 1 deletion i18n/pl_PL.csv
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@
"This is not a valid EAN number","To nie jest poprawny numer EAN"
"Debug mode enabled", "Tryb debugowania włączony"
"Order with checkout form ID: %1 has been successfully imported","Zamówienie od ID: %1 zostało pomyślnie zaimportowane"
"Something went wrong while trying to import order with checkout form ID: %1","Coś poszło nie tak podczas próby zaimportowania zamówienia o ID:" %1"
"Something went wrong while trying to import order with checkout form ID: %1","Coś poszło nie tak podczas próby zaimportowania zamówienia o ID: %1"
"Orders with errors","Zamówienia z błędami"
"Checkout form ID","ID zamówienia"
"Date of first import try","Data pierwszej próby importu"
Expand All @@ -163,3 +163,11 @@
"Reservation ID","ID rezerwacji"
"Reservations enabled","Rezerwacje włączone"
"Buyer login","Login kupującego"
"Delete reservations","Usuń rezerwacje"
"Delete orders","Usuń zamówienia"
"Are you sure to delete selected orders?","Jesteś pewien, że chcesz usunąć wybrane zamówienia?"
"Are you sure to delete selected reservations?","Jesteś pewien, że chcesz usunąć wybrane rezerwacje?"
"Something went wrong while trying to delete order log with checkout form ID: %1","Coś poszło nie tak podczas próby usunięcia zamówienia o ID: %1"
"Order log with checkout form ID: %1 has been successfully deleted","Zamówienie o ID: %1 zostało pomyślnie usunięte"
"Reservation with ID: %1 has been successfully deleted","Rezerwacja o ID: %1 została pomyślnie usunięta"
"Something went wrong while trying to delete reservation with ID: %1","Coś poszło nie tak podczas próby usunięcia rezerwacji o ID: %1"
40 changes: 35 additions & 5 deletions view/adminhtml/ui_component/allegro_reservations_listing.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,39 @@
<filters name="listing_filters" />
<paging name="listing_paging"/>
<exportButton name="export_button"/>
<massaction name="listing_massaction">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="component" xsi:type="string">Magento_Ui/js/grid/tree-massactions</item>
<item name="indexField" xsi:type="string">entity_id</item>
</item>
</argument>
<action name="delete">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="type" xsi:type="string">delete</item>
<item name="label" xsi:type="string" translate="true">Delete</item>
<item name="url" xsi:type="url" path="*/*/delete"/>
<item name="confirm" xsi:type="array">
<item name="title" xsi:type="string" translate="true">Delete reservations</item>
<item name="message" xsi:type="string" translate="true">Are you sure to delete selected reservations?</item>
</item>
</item>
</argument>
</action>
</massaction>
</listingToolbar>
<columns name="reservations_columns">
<column name="entity_id" sortOrder="10">
<selectionsColumn name="ids" sortOrder="10">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="resizeEnabled" xsi:type="boolean">false</item>
<item name="resizeDefaultWidth" xsi:type="string">55</item>
<item name="indexField" xsi:type="string">entity_id</item>
</item>
</argument>
</selectionsColumn>
<column name="entity_id" sortOrder="20">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">textRange</item>
Expand All @@ -44,7 +74,7 @@
</item>
</argument>
</column>
<column name="reservation_id" sortOrder="20">
<column name="reservation_id" sortOrder="30">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">textRange</item>
Expand All @@ -53,23 +83,23 @@
</item>
</argument>
</column>
<column name="checkout_form_id" sortOrder="30">
<column name="checkout_form_id" sortOrder="40">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Checkout form ID</item>
</item>
</argument>
</column>
<column name="sku" sortOrder="40">
<column name="sku" sortOrder="50">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="filter" xsi:type="string">text</item>
<item name="label" xsi:type="string" translate="true">Product SKU</item>
</item>
</argument>
</column>
<column name="quantity" sortOrder="50">
<column name="quantity" sortOrder="60">
<argument name="data" xsi:type="array">
<item name="config" xsi:type="array">
<item name="label" xsi:type="string" translate="true">Quantity</item>
Expand Down

0 comments on commit c2d9883

Please sign in to comment.