Files
bx.discount/lib/ORM/DiscountTable.php
T
2026-02-05 16:22:55 +03:00

98 lines
2.7 KiB
PHP

<?php
namespace Bx\Discount\ORM;
use Bitrix\Main\ORM\Fields\DatetimeField;
use Bitrix\Main\Type\DateTime;
use Exception;
use Wt\Core\ORM\ADataManager;
class DiscountTable extends ADataManager
{
public static function getTitle()
{
return 'Discount Title';
}
public static function getRowTitle()
{
return 'Discount Row Title';
}
public static function getRowDescription()
{
return 'Discount Row Description';
}
public static function getTableName()
{
return 'bx_discount_table';
}
public static function getMap()
{
return [
'ID' => new \Bitrix\Main\Entity\IntegerField('ID', [
'primary' => true,
'autocomplete' => true,
'title' => 'Id',
]),
'DISCOUNT_ID' => new \Bitrix\Main\Entity\IntegerField('DISCOUNT_ID', [
'title' => 'DiscountId',
]),
'TYPE' => new \Bitrix\Main\Entity\StringField('TYPE', [
'title' => 'Type',
]),
'CREATED_AT' => new \Bitrix\Main\Entity\DatetimeField('CREATED_AT', [
'title' => 'CreatedAt',
'user_edit' => false,
]),
'UPDATED_AT' => new \Bitrix\Main\Entity\DatetimeField('UPDATED_AT', [
'title' => 'UpdatedAt',
'user_edit' => false,
]),
];
}
/**
* @param $primary
* @param array $data
* @return \Bitrix\Main\ORM\Data\UpdateResult
* @throws \Bitrix\Main\ObjectException
* @throws Exception
*/
public static function update($primary, array $data)
{
foreach (static::getEntity()->getFields() as $field){
if(is_a($field, DatetimeField::class)){
if(isset($data[$field->getName()]) && !is_a($data[$field->getName()], DateTime::class)) {
$data[$field->getName()] = new \Bitrix\Main\Type\DateTime($data[$field->getName()]);
}
}
}
$data = array_merge($data, [
'UPDATED_AT' => new \Bitrix\Main\Type\DateTime(), // date(CDatabase::DateFormatToPHP(FORMAT_DATETIME))
]);
unset($data['CREATED_AT']);
return parent::update($primary, $data);
}
/**
* @param array $fields
* @return \Bitrix\Main\ORM\Data\AddResult
* @throws \Bitrix\Main\ObjectException
* @throws Exception
*/
public static function add(array $fields)
{
$fields = array_merge($fields, [
'CREATED_AT' => new \Bitrix\Main\Type\DateTime(),
'UPDATED_AT' => new \Bitrix\Main\Type\DateTime(),
]);
return parent::add($fields);
}
}