Files
lulandia.pl/modules/przelewy24/models/Przelewy24Extracharge.php
2025-04-01 00:38:54 +02:00

110 lines
2.5 KiB
PHP

<?php
/**
* @author Przelewy24
* @copyright Przelewy24
* @license https://www.gnu.org/licenses/lgpl-3.0.en.html
*/
if (!defined('_PS_VERSION_')) {
exit;
}
/**
* Class Przelewy24Extracharge
*/
class Przelewy24Extracharge extends ObjectModel
{
/**
* Extracharge id.
*
* @var int
*/
public $id_extracharge;
/**
* Order id (ps order).
*
* @var int
*/
public $id_order;
/**
* Amount in grosz`s (1 grosz === 1/100 PLN)
*
* @var int
*/
public $extra_charge_amount;
/**
* Total order paid amount in PLN
*
* This convention follows the PrestaShop internals.
*
* @var float
*/
public $total_paid;
const TABLE = 'przelewy24_extra_charges';
const ID_EXTRACHARGE = 'id_extracharge';
const ID_ORDER = 'id_order';
const EXTRA_CHARGE_AMOUNT = 'extra_charge_amount';
const TOTAL_PAID = 'total_paid';
/**
* Model definition.
*
* @var array
*/
public static $definition = [
'table' => self::TABLE,
'primary' => self::ID_EXTRACHARGE,
'fields' => [
self::ID_EXTRACHARGE => ['type' => self::TYPE_INT],
self::ID_ORDER => ['type' => self::TYPE_INT, 'required' => true],
self::EXTRA_CHARGE_AMOUNT => ['type' => self::TYPE_INT, 'required' => true],
self::TOTAL_PAID => ['type' => self::TYPE_FLOAT, 'required' => true],
],
];
/**
* Returns first entry matching for order id.
*
* PretaShopCollection does not apply limit to db query on its own
* (when using getFirst). It selects ALL entries from DB and then returns first of them.
* That is why line:
* ->setPageSize(1)
* had to be added.
*
* @param int $orderId
*
* @return Przelewy24ExtraCharge
*/
public static function findOneByOrderId($orderId)
{
$queryBuilder = new PrestaShopCollection(self::class);
return $queryBuilder
->where('id_order', '=', $orderId)
->setPageSize(1)
->getFirst();
}
/**
* Gets or creates extra charge object by its order id.
*
* @param int $orderId
*
* @return Przelewy24ExtraCharge
*/
public static function prepareByOrderId($orderId)
{
$extracharge = self::findOneByOrderId($orderId);
if (!($extracharge instanceof ObjectModel)) {
$extracharge = new Przelewy24ExtraCharge();
}
$extracharge->id_order = $orderId;
return $extracharge;
}
}