first commit

This commit is contained in:
2024-11-05 12:22:50 +01:00
commit e5682a3912
19641 changed files with 2948548 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
<?php
/**
* Copyright 2021-2022 InPost S.A.
*
* NOTICE OF LICENSE
*
* Licensed under the EUPL-1.2 or later.
* You may not use this work except in compliance with the Licence.
*
* You may obtain a copy of the Licence at:
* https://joinup.ec.europa.eu/software/page/eupl
* It is also bundled with this package in the file LICENSE.txt
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the Licence is distributed on an AS IS basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions
* and limitations under the Licence.
*
* @author InPost S.A.
* @copyright 2021-2022 InPost S.A.
* @license https://joinup.ec.europa.eu/software/page/eupl
*/
use InPost\Shipping\Install\Tabs;
use InPost\Shipping\ShipX\Resource\Status;
require_once dirname(__FILE__) . '/AdminInPostShipmentsController.php';
class AdminInPostSentShipmentsController extends AdminInPostShipmentsController
{
const TRANSLATION_SOURCE = 'AdminInPostSentShipmentsController';
public function __construct()
{
parent::__construct();
$this->_select .= ', COALESCE(sl.title, a.status) as status_title, sl.description';
$this->_join .= '
LEFT JOIN `' . _DB_PREFIX_ . 'inpost_shipment_status` s ON s.name = a.status
LEFT JOIN `' . _DB_PREFIX_ . 'inpost_shipment_status_lang` sl
ON sl.id_status = s.id_status AND sl.id_lang = ' . (int) $this->context->language->id;
$this->_where .= ' AND a.status NOT IN ("' . implode('","', Status::NOT_SENT_STATUSES) . '")';
}
protected function getFieldsList()
{
$fields = parent::getFieldsList();
return array_merge(
array_slice($fields, 0, 2),
[
'status_title' => [
'title' => $this->module->l('State', self::TRANSLATION_SOURCE),
'type' => 'select',
'list' => $this->getStatusList(),
'filter_key' => 'a!status',
'callback' => 'displayStatus',
],
],
array_slice($fields, 2)
);
}
protected function getStatusList()
{
$list = [];
$collection = new PrestaShopCollection(InPostShipmentStatusModel::class, $this->context->language->id);
/** @var InPostShipmentStatusModel $status */
foreach ($collection as $status) {
$list[$status->name] = $status->title;
}
return $list;
}
public function initBreadcrumbs($tab_id = null, $tabs = null)
{
parent::initBreadcrumbs($tab_id, $tabs);
if (!$this->shopContext->is17()) {
$this->breadcrumbs = array_merge([
$this->module->l('InPost shipments', Tabs::TRANSLATION_SOURCE),
], $this->breadcrumbs);
}
}
public function displayStatus($status, $row)
{
if ($description = $row['description']) {
return sprintf(
'<a data-toggle="tooltip" title="%s">%s</a>',
$description,
$status
);
}
return $status;
}
}