<?php
namespace App\AtechNet\CoreBundle\Entity;
use Doctrine\ORM\Mapping\Column;
use Doctrine\ORM\Mapping\Entity;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\ManyToOne;
use Doctrine\ORM\Mapping\Table as Table;
/**
* OrderSetting
*
* @Table(name="orders_setting")
* @Entity()
*/
class OrderSetting extends AbstractSignedEntity
{
public const int TYPE_CETELEM_CODE = 1;
public const int TYPE_DEPOSIT = 2;
public const int TYPE_LABEL_PRINTED = 3;
public const int TYPE_PICKUP_POINT_ID = 4;
public const int TYPE_PARENT_ORDER_ID = 5;
public const int TYPE_CHILD_ORDER_ID = 6;
public const int TYPE_PICKUP_POINT_PARTNER_NOTIFIED = 7;
public const int TYPE_COUPON_CODE = 8;
public const int TYPE_GOPAY_PAYMENT_ID = 9;
public const int TYPE_SIMPLEPAY_PAYMENT_ID = 10;
public const int TYPE_SIMPLEPAY_PAYMENT_ORDER_REF = 11;
public const int TYPE_UPSELL_STATS = 12;
public const int TYPE_SHIPPING_NOTIFICATION = 13;
public const int TYPE_PAID_PRICE_BY_CARD = 14;
public const int TYPE_MINI_CRM_ID = 15;
public const int TYPE_CHOSEN_CARRIER_ID = 16;
public const int TYPE_DONE = 17;
public const int TYPE_SHIPPING_DATETIME = 18;
public const int TYPE_ORDER_CONFIRMED = 19;
public const int TYPE_BILLINGO_NOTE = 20;
public const int TYPE_PACKETA_BRANCH_ID = 21;
public const int TYPE_PACKETA_BRANCH_NAME = 22;
public const int TYPE_EU_PERSONAL_TAX_ID = 23;
public const int TYPE_FINISHED_BY_MARKETPLACE_API = 24;
public const int TYPE_INSTACASH_APPLICATION_ID = 25;
public const int TYPE_INSTACASH_APPLICATION_STATUS = 26;
public const int TYPE_INSTACASH_PAYMENT = 27;
public const int TYPE_DISABLE_INVOICE_CREATION = 28;
public const int TYPE_TRACKING_NUMBER_FROM_PBH = 29;
public const int TYPE_PAST_PAY_RESERVE = 30;
public const int TYPE_PAST_PAY_FINALIZED = 31;
public const int TYPE_PAST_PAY_RESERVATION_CANCELED = 32;
public const int TYPE_MARKETPLACE_ORDER_FINISHED_MANUALLY = 33;
public const int TYPE_KLARNA_PAYMENT_SESSION_ID = 34;
public const int TYPE_KLARNA_ORDER_ID = 35;
public const int TYPE_CLONED_ORDER = 36;
public const int TYPE_PAYPAL_ORDER_ID = 37;
public const int TYPE_CANCELED_ORDER = 38;
public const int TYPE_MILPAY_APPLICATION_ID = 39;
public const int TYPE_MILPAY_APPLICATION_STATUS = 40;
public const int TYPE_MILPAY_PAYMENT = 41;
public const int TYPE_PACKETA_CARRIER_ID = 42;
public const int TYPE_PRICE_BY_MARKETPLACE_API = 43;
public const int TYPE_PAYPAL_TRANSACTION_ID = 44;
public const int TYPE_FORCE_SAVING_USER = 45;
public const int TYPE_REQUIRED_QUALITY_CHECK = 46;
public const int TYPE_UZAVIERKA_PRINTED_AT = 47;
public const int TYPE_UNAS_ORDER_DOMAIN = 48;
public const int TYPE_STRIPE_ID = 49;
public const int TYPE_UNAS_USER_IS_REGISTERED = 50;
public const int TYPE_FEDEX_TRACKING_NUMBER = 51;
public const int TYPE_FEDEX_ADDRESS_VERIFIED = 52;
public const int TYPE_CLAIM_FEDEX_TRACKING_NUMBER = 53;
public const int TYPE_CLAIM_IMPORT_FEDEX_TRACKING_NUMBER = 54;
public const int TYPE_SALES_RISK = 55;
public const int TYPE_QUALITY_MAY_VARY = 56;
public const int TYPE_ALTERNATIVE_V2_PRODUCT = 57;
public const int TYPE_LASERED_PRODUCTS = 58;
public const int TYPE_CN_COUNT = 59;
public const int SUB_TYPE_UPSELL_STATS_VIEW = 1;
public const int SUB_TYPE_UPSELL_STATS_WANT = 2;
public const int SUB_TYPE_UPSELL_STATS_DONT_WANT = 3;
public const string VALUE_FINISH_BY_MARKETPLACE_API_SUCCESS = 'success';
public const string VALUE_FINISH_BY_MARKETPLACE_API_FAILED = 'failed';
public const string VALUE_FINISH_BY_MARKETPLACE_API_WARNING = 'warning';
/**
* @return string[]
*/
public static function getTypeChoices(): array
{
return [
self::TYPE_CETELEM_CODE => 'Cetelem code',
self::TYPE_DEPOSIT => 'Deposit',
self::TYPE_LABEL_PRINTED => 'Label printed',
self::TYPE_PICKUP_POINT_ID => 'Pickup point ID',
self::TYPE_PARENT_ORDER_ID => 'Parent order ID',
self::TYPE_CHILD_ORDER_ID => 'Child order ID',
self::TYPE_PICKUP_POINT_PARTNER_NOTIFIED => 'Partner notified',
self::TYPE_COUPON_CODE => 'Coupon code',
self::TYPE_GOPAY_PAYMENT_ID => 'Gopay payment ID',
self::TYPE_SIMPLEPAY_PAYMENT_ID => 'Simplepay payment ID',
self::TYPE_SIMPLEPAY_PAYMENT_ORDER_REF => 'Simplepay payment order ref',
self::TYPE_UPSELL_STATS => 'Upsell stats',
self::TYPE_SHIPPING_NOTIFICATION => 'Notification sent about shipping',
self::TYPE_MINI_CRM_ID => 'Mini CRM',
self::TYPE_CHOSEN_CARRIER_ID => 'Chosen carrier',
self::TYPE_DONE => 'Done',
self::TYPE_SHIPPING_DATETIME => 'Shipping date and time',
self::TYPE_ORDER_CONFIRMED => 'Order confirmed',
self::TYPE_BILLINGO_NOTE => 'Note on the Billingo invoice',
self::TYPE_PACKETA_BRANCH_ID => 'Packeta branch (pickup point) id',
self::TYPE_PACKETA_BRANCH_NAME => 'Packeta branch (pickup point) name',
self::TYPE_INSTACASH_APPLICATION_ID => 'Instacash application ID',
self::TYPE_INSTACASH_APPLICATION_STATUS => 'Instacash application status',
self::TYPE_INSTACASH_PAYMENT => 'Instacash payment',
self::TYPE_DISABLE_INVOICE_CREATION => 'Disable invoice creation',
self::TYPE_MILPAY_APPLICATION_ID => 'Milpay application ID ',
self::TYPE_MILPAY_APPLICATION_STATUS => 'Milpay application status',
self::TYPE_MILPAY_PAYMENT => 'Milpay payment',
self::TYPE_PACKETA_CARRIER_ID => 'Packeta carrier id',
self::TYPE_REQUIRED_QUALITY_CHECK => 'Required quality check',
self::TYPE_CN_COUNT => 'Credit note count',
];
}
/**
* @return string[][]
*/
public static function getSubTypeChoices(): array
{
return [
self::TYPE_UPSELL_STATS => [
self::SUB_TYPE_UPSELL_STATS_VIEW => 'Viewed',
self::SUB_TYPE_UPSELL_STATS_WANT => 'Want',
self::SUB_TYPE_UPSELL_STATS_DONT_WANT => 'Dont want',
],
];
}
/**
* @var Order
*
* @ManyToOne(targetEntity="Order", inversedBy="settings")
* @JoinColumn(name="order_id", referencedColumnName="id")
*/
private $order;
/**
* @var int
*
* @Column(name="type", type="integer")
*/
private $type;
/**
* @var string
*
* @Column(name="value", type="string", length=256)
*/
private $value;
/**
* @return Order
*/
public function getOrder()
{
return $this->order;
}
/**
* @param Order $order
*/
public function setOrder(Order $order)
{
return $this->order = $order;
}
/**
* @return int
*/
public function getType()
{
return $this->type;
}
/**
* @param int $type
*/
public function setType($type)
{
return $this->type = $type;
}
/**
* @return string
*/
public function getValue()
{
return $this->value;
}
/**
* @param string $value
*/
public function setValue($value)
{
return $this->value = $value;
}
/**
* @param Order $order
* @param $settingCode
* @param $settingValue
* @return OrderSetting
*/
public static function createSetting(Order $order, $settingCode, $settingValue): OrderSetting
{
$orderSetting = new OrderSetting();
$orderSetting->setOrder($order);
$orderSetting->setType($settingCode);
$orderSetting->setValue($settingValue);
return $orderSetting;
}
/**
* @param OrderSetting $orderSetting
* @param $settingValue
* @return OrderSetting
*/
public static function updateSettingValue(OrderSetting $orderSetting, $settingValue): OrderSetting
{
$orderSetting->setValue($settingValue);
return $orderSetting;
}
}