src/AtechNet/CoreBundle/Entity/Shipment.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\AtechNet\CoreBundle\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\ORM\Mapping\Column;
  5. use Doctrine\ORM\Mapping\Entity;
  6. use Doctrine\ORM\Mapping\HasLifecycleCallbacks;
  7. use Doctrine\ORM\Mapping\JoinColumn;
  8. use Doctrine\ORM\Mapping\ManyToOne;
  9. use Doctrine\ORM\Mapping\OneToMany;
  10. use Doctrine\ORM\Mapping\Table as Table;
  11. use Doctrine\ORM\PersistentCollection;
  12. use Symfony\Component\Validator\Constraints as Assert;
  13. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  14. /**
  15.  * Shipment
  16.  *
  17.  * @Table(name="shipments")
  18.  * @Entity(repositoryClass="App\AtechNet\CoreBundle\Repository\ShipmentRepository")
  19.  * @HasLifecycleCallbacks
  20.  * @UniqueEntity(fields="shipmentId", message="Shipment ID is already in use")
  21.  */
  22. class Shipment extends AbstractSignedEntity
  23. {
  24.     public const int FIRST_SHIPMENT_CODE = 1325;
  25.     public const int STATUS_NEW = 10;
  26.     public const int STATUS_INCOMING = 20;
  27.     public const int STATUS_ARRIVED = 30;
  28.     public const int STATUS_STARTED = 35;
  29.     public const int STATUS_IN_PRODUCTION = 40;
  30.     public const int STATUS_FINISHED = 50;
  31.     public const int STATUS_CANCELED = 60;
  32.     public const int SUPPLIER_CATEGORY_WANTED_SALES = 1;
  33.     public const int SUPPLIER_CATEGORY_STANDARD_PURCHASE = 2;
  34.     public const int SUPPLIER_CATEGORY_STRATEGIC_PURCHASE = 3;
  35.     public const int SUPPLIER_CATEGORY_SPARE_PARTS = 4;
  36.     public const int SUPPLIER_CATEGORY_NEW_PURCHASE = 5;
  37.     public const int TARGET_MARKET_RETAIL = 1;
  38.     public const int TARGET_MARKET_WHOLESALE = 2;
  39.     public const int TARGET_MARKET_MARKETPLACE = 3;
  40.     public const int TARGET_MARKET_EXPORT = 4;
  41.     public const int TARGET_MARKET_ALL_CHANNELS = 5;
  42.     public const int TARGET_MARKET_PARTS = 6;
  43.     public const int TARGET_MARKET_TO_BE_DISCUSSED = 7;
  44.     public const int PAYMENT_PRIORITY_URGENT = 1;
  45.     public const int PAYMENT_PRIORITY_I = 2;
  46.     public const int PAYMENT_PRIORITY_II = 3;
  47.     public const int PAYMENT_PRIORITY_NO = 4;
  48.     public const int PAYMENT_PRIORITY_CREDIT = 5;
  49.     public const int PAYMENT_PRIORITY_ADVANCE = 6;
  50.     public const int PAYMENT_PRIORITY_SPLIT = 7;
  51.     public const int PAYMENT_STATUS_UNPAID = 1;
  52.     public const int PAYMENT_STATUS_PARTIAL = 2;
  53.     public const int PAYMENT_STATUS_PAID = 3;
  54.     public const int PAYMENT_STATUS_OVERPAID = 4;
  55.     public const int PAYMENT_STATUS_POST_DUE_DATE = 5;
  56.     public const int PRODUCT_PC = 1;
  57.     public const int PRODUCT_NOTEBOOK = 2;
  58.     public const int PRODUCT_ALL_IN_ONE = 3;
  59.     public const int PRODUCT_MONITOR = 4;
  60.     public const int PRODUCT_SMARTPHONE = 5;
  61.     public const int PRODUCT_TABLET = 6;
  62.     public const int PRODUCT_OTHER = 7;
  63.     public const int CLAIM_STATUS_QUANTITY_MISMATCH = 1;
  64.     public const int CLAIN_STATUS_NOTHING_TO_COMPLAIN = 2;
  65.     public const int CLAIM_STATUS_IN_PROGRESS = 3;
  66.     public const int CLAIM_STATUS_NO_COMPLAIN = 4;
  67.     public const int CLAIM_STATUS_SEND_BACK = 5;
  68.     public const int CLAIM_STATUS_REJECTED = 6;
  69.     public const int CLAIM_STATUS_CREDIT_NOTE_NO_SEND_BACK = 7;
  70.     public const int CLAIM_STATUS_CREDIT_NOTE_DEDUCTION = 8;
  71.     public const int CLAIM_STATUS_CREDIT_NOTE_REFUND = 9;
  72.     public const int CLAIM_STATUS_COMPENSATION = 10;
  73.     public const int TRANSPORT_SUPERVISE_SUPPLY = 1;
  74.     public const int TRANSPORT_SUPERVISE_PARTNER = 2;
  75.     public const int TRANSPORT_SUPERVISE_LOG = 3;
  76.     /**
  77.      * @var string
  78.      *
  79.      * @Column(name="shipment_id", type="string", unique=true, nullable=false)
  80.      */
  81.     private string $shipmentId;
  82.     /**
  83.      * @var User|null
  84.      *
  85.      * @ManyToOne(targetEntity="User")
  86.      * @JoinColumn(name="purchaser_id", referencedColumnName="id", nullable=true)
  87.      */
  88.     private ?User $purchaser = null;
  89.     /**
  90.      * @var Customer
  91.      *
  92.      * @ManyToOne(targetEntity="Customer")
  93.      * @JoinColumn(name="supplier_id", referencedColumnName="id")
  94.      */
  95.     private Customer $supplier;
  96.     /**
  97.      * @var int
  98.      *
  99.      * @Column(name="status_id", type="integer", nullable=false)
  100.      */
  101.     private int $statusId;
  102.     /**
  103.      * @var string|null
  104.      *
  105.      * @Column(name="preinvoice_link", type="text", nullable=true)
  106.      */
  107.     private ?string $preinvoiceLink;
  108.     /**
  109.      * @var string|null
  110.      *
  111.      * @Column(name="preinvoice_code", type="text", length="86", nullable=true)
  112.      */
  113.     private ?string $preinvoiceCode;
  114.     /**
  115.      * @var string|null
  116.      *
  117.      * @Column(name="invoice_link", type="text", nullable=true)
  118.      */
  119.     private ?string $invoiceLink;
  120.     /**
  121.      * @var string|null
  122.      *
  123.      * @Column(name="invoice_code", type="text", length="86", nullable=true)
  124.      */
  125.     private ?string $invoiceCode;
  126.     /**
  127.      * @var string|null
  128.      *
  129.      * @Column(name="credit_note_link", type="text", nullable=true)
  130.      */
  131.     private ?string $creditNoteLink;
  132.     /**
  133.      * @var string|null
  134.      *
  135.      * @Column(name="credit_note_code", type="text", length="86", nullable=true)
  136.      */
  137.     private ?string $creditNoteCode;
  138.     /**
  139.      * @var string|null
  140.      *
  141.      * @Column(name="credit_note_value", type="decimal", precision=10, scale=2, nullable=true)
  142.      */
  143.     private ?string $creditNoteValue = '0.00';
  144.     /**
  145.      * @var string|null
  146.      *
  147.      * @Column(name="credit_note_deduct", type="decimal", precision=10, scale=2, nullable=true)
  148.      */
  149.     private ?string $creditNoteDeduct = '0.00';
  150.     /**
  151.      * @var string|null
  152.      *
  153.      * @Column(name="credit_note_deduct_shipment_id", type="string", nullable=true)
  154.      */
  155.     private ?string $creditNoteDeductShipment = null;
  156.     /**
  157.      * @var \DateTime|null
  158.      *
  159.      * @Column(name="original_supplier_list_date", type="datetime", nullable=true)
  160.      */
  161.     private ?\DateTime $originalSupplierListDate;
  162.     /**
  163.      * @var string|null
  164.      * 
  165.      * @Column(name="original_supplier_list", type="text", nullable=true)
  166.      */
  167.     private ?string $originalSupplierList;
  168.     /**
  169.      * @var string|null
  170.      *
  171.      * @Column(name="original_supplier_list_link", type="text", nullable=true)
  172.      */
  173.     private ?string $originalSupplierListLink;
  174.     /**
  175.      * @var string|null
  176.      *
  177.      * @Column(name="stock_summary_link", type="text", nullable=true)
  178.      */
  179.     private ?string $stockSummaryLink;
  180.     /**
  181.      * @var int|null
  182.      *
  183.      * @Column(name="supplier_category_id", type="integer", nullable=true)
  184.      */
  185.     private ?int $supplierCategoryId;
  186.     /**
  187.      * @var \DateTime|null
  188.      *
  189.      * @Column(name="expected_arrival_date_from", type="datetime", nullable=true)
  190.      */
  191.     private ?\DateTime $expectedArrivalDateFrom;
  192.     /**
  193.      * @var \DateTime|string|null
  194.      *
  195.      * @Column(name="expected_arrival_date_to", type="datetime", nullable=true)
  196.      */
  197.     private \DateTime|string|null $expectedArrivalDateTo;
  198.     /**
  199.      * @var \DateTime|string|null
  200.      *
  201.      * @Column(name="confirmed_arrival_date", type="date", nullable=true)
  202.      */
  203.     private \DateTime|string|null $confirmedArrivalDate;
  204.     /**
  205.      * @var int|null
  206.      *
  207.      * @Column(name="payment_priority_id", type="integer", nullable=true)
  208.      */
  209.     private ?int $paymentPriorityId;
  210.     /**
  211.      * @var \DateTime|null
  212.      *
  213.      * @Column(name="planned_payment_date", type="datetime", nullable=true)
  214.      */
  215.     private ?\DateTime $plannedPaymentDate;
  216.     /**
  217.      * @var string
  218.      *
  219.      * @Column(name="currency", type="string", length=8)
  220.      */
  221.     private string $currency;
  222.     /**
  223.      * @var string
  224.      *
  225.      * @Column(name="total_price", type="decimal", precision=10, scale=2)
  226.      */
  227.     private string $totalPrice;
  228.     /**
  229.      * @var string|null
  230.      *
  231.      * @Column(name="aiken_lots", type="text", nullable=true)
  232.      */
  233.     private ?string $aikenLots;
  234.     /**
  235.      * @var string
  236.      *
  237.      * @Column(name="received_price_value", type="decimal", precision=10, scale=2)
  238.      */
  239.     private string $receivedPriceValue = '0.00';
  240.     /**
  241.      * @var string
  242.      *
  243.      * @Column(name="paid_price", type="decimal", precision=10, scale=2)
  244.      */
  245.     private string $paidPrice = '0.00';
  246.     /**
  247.      * @var string
  248.      *
  249.      * @Column(name="quarantine_price_drop_percentage", type="decimal", precision=10, scale=2)
  250.      */
  251.     private string $quarantinePriceDropPercentage = '0.00';
  252.     /**
  253.      * @var int
  254.      *
  255.      * @Column(name="ordered_quantity", type="integer")
  256.      */
  257.     private int $orderedQuantity = 0;
  258.     /**
  259.      * @var int
  260.      *
  261.      * @Column(name="received_quantity", type="integer")
  262.      */
  263.     private int $receivedQuantity = 0;
  264.     /**
  265.      * @var int
  266.      *
  267.      * @Column(name="payment_status_id", type="integer", nullable=false)
  268.      */
  269.     private int $paymentStatusId = self::PAYMENT_STATUS_UNPAID;
  270.     /**
  271.      * @var PersistentCollection
  272.      *
  273.      * @OneToMany(targetEntity="Document", mappedBy="shipment")
  274.      **/
  275.     private $documents;
  276.     /**
  277.      * @var PersistentCollection
  278.      *
  279.      * @OneToMany(targetEntity="StockMovement", mappedBy="shipment")
  280.      **/
  281.     private $stockMovements;
  282.     /**
  283.      * @var array|null
  284.      *
  285.      * @Column(name="products", type="json", nullable=true)
  286.      */
  287.     private ?array $products = null;
  288.     /**
  289.      * @var array|null
  290.      *
  291.      * @Column(name="production", type="json", nullable=true)
  292.      */
  293.     private ?array $production = null;
  294.     /**
  295.      * @var User|null
  296.      * 
  297.      * @ManyToOne(targetEntity="User")
  298.      * @JoinColumn(name="claim_supervisor_id", referencedColumnName="id", nullable=true)
  299.      */
  300.     private ?User $claimSupervisor;
  301.     /**
  302.      * @var int|null
  303.      * 
  304.      * @Column(name="claim_status", type="integer", nullable=true)
  305.      */
  306.     private ?int $claimStatus = null;
  307.     /**
  308.      * @var \DateTime|null
  309.      *
  310.      * @Column(name="claim_start_date", type="datetime", nullable=true)
  311.      */
  312.     private ?\DateTime $claimStartDate;
  313.     /**
  314.      * @var \DateTime|null
  315.      *
  316.      * @Column(name="claim_end_date", type="datetime", nullable=true)
  317.      */
  318.     private ?\DateTime $claimEndDate;
  319.     /**
  320.      * @var string|null
  321.      *
  322.      * @Column(name="claim_note", type="text", length="255", nullable=true)
  323.      */
  324.     private ?string $claimNote;
  325.     /**
  326.      * @var array|null
  327.      * 
  328.      * @Column(name="claim_products", type="json", nullable=true)
  329.      */
  330.     private ?array $claimProducts = null;
  331.     /**
  332.      * @var string|null
  333.      *
  334.      * @Column(name="claim_rma_link", type="text", length="255", nullable=true)
  335.      */
  336.     private ?string $claimRMALink;
  337.     /**
  338.      * @var \DateTime|null
  339.      *
  340.      * @Column(name="paid_date", type="datetime", nullable=true)
  341.      */
  342.     private ?\DateTime $paidDate;
  343.     /**
  344.      * @var User|null
  345.      * 
  346.      * @ManyToOne(targetEntity="User")
  347.      * @JoinColumn(name="paid_by", referencedColumnName="id", nullable=true)
  348.      */
  349.     private ?User $paidBy;
  350.     /**
  351.      * @var string|null
  352.      *
  353.      * @Column(name="pohoda_no", type="text", length="24", nullable=true)
  354.      */
  355.     private ?string $pohodaNo;
  356.     /**
  357.      * @var string|null
  358.      *
  359.      * @Column(name="config_list_link", type="text", nullable=true)
  360.      */
  361.     private ?string $configListLink;
  362.     /**
  363.      * @var \DateTime|null
  364.      *
  365.      * @Column(name="config_list_date", type="datetime", nullable=true)
  366.      */
  367.     private ?\DateTime $configListDate;
  368.     /**
  369.      * @var string|null
  370.      *
  371.      * @Column(name="finance_note", type="text", nullable=true)
  372.      */
  373.     private ?string $financeNote;
  374.     /**
  375.      * @var string|null
  376.      *
  377.      * @Column(name="merged_shipments", type="text", nullable=true)
  378.      */
  379.     private ?string $mergedShipments;
  380.     /**
  381.      * @var string|null
  382.      *
  383.      * @Column(name="transport_no", type="text", length="24", nullable=true)
  384.      */
  385.     private ?string $transportNo;
  386.     /**
  387.      * @var string|null
  388.      *
  389.      * @Column(name="transport_link", type="text", nullable=true)
  390.      */
  391.     private ?string $transportLink;
  392.     /**
  393.      * @var string|null
  394.      *
  395.      * @Column(name="carrier_company", type="text", length="24", nullable=true)
  396.      */
  397.     private ?string $carrierCompany;
  398.     /**
  399.      * @var string
  400.      *
  401.      * @Column(name="carrier_fee", type="decimal", precision=10, scale=2)
  402.      */
  403.     private string $carrierFee = '0.00';
  404.     /**
  405.      * @var bool
  406.      *
  407.      * @Column(name="in_daily_product_turnover", type="boolean")
  408.      */
  409.     private bool $inDailyProductTurnover = false;
  410.     /**
  411.      * @var bool
  412.      *
  413.      * @Column(name="quarantine_finished", type="boolean")
  414.      */
  415.     private bool $quarantineFinished = false;
  416.     /**
  417.      * @var string|null
  418.      *
  419.      * @Column(name="expected_quarantine_ratio", type="decimal", precision=10, scale=2, nullable=true)
  420.      */
  421.     private ?string $expectedQuarantineRatio = null;
  422.     /**
  423.      * @var bool
  424.      *
  425.      * @Assert\NotNull
  426.      *
  427.      * @Column(name="customs", type="boolean")
  428.      */
  429.     private $customs = false;
  430.     /**
  431.      * @var string
  432.      *
  433.      * @Column(name="customs_duty", type="decimal", precision=10, scale=2)
  434.      */
  435.     private string $customsDuty = '0.00';
  436.     /**
  437.      * @var string|null
  438.      *
  439.      * @Column(name="note", type="text", nullable=true)
  440.      */
  441.     private ?string $note;
  442.     /**
  443.      * @var string|null
  444.      *
  445.      * @Column(name="purchase_order", type="text", nullable=true)
  446.      */
  447.     private ?string $purchaseOrder;
  448.     /**
  449.      * @var string|null
  450.      *
  451.      * @Column(name="supply_note", type="text", nullable=true)
  452.      */
  453.     private ?string $supplyNote;
  454.     /**
  455.      * @var string|null
  456.      *
  457.      * @Column(name="waiting_pricing", type="text", nullable=true)
  458.      */
  459.     private ?string $waitingPricing;
  460.     /**
  461.      * @var string|null
  462.      *
  463.      * @Column(name="supervise_transport", type="text", nullable=true)
  464.      */
  465.     private ?string $superviseTransport;
  466.     /**
  467.      * @var int
  468.      *
  469.      * @Column(name="quantity", type="integer")
  470.      */
  471.     private int $quantity = 0;
  472.     /**
  473.      * @var float
  474.      *
  475.      * @Column(name="weight", type="float")
  476.      */
  477.     private float $weight = 0;
  478.     /**
  479.      * @var string|null
  480.      *
  481.      * @Column(name="country", type="text", length="2", nullable=true)
  482.      */
  483.     private ?string $country;
  484.     /**
  485.      * @var string|null
  486.      *
  487.      * @Column(name="pickup_truck", type="text", length="16", nullable=true)
  488.      */
  489.     private ?string $pickupTruck;
  490.     /**
  491.      * @var \DateTime|null
  492.      *
  493.      * @Column(name="pickup_date", type="datetime", nullable=true)
  494.      */
  495.     private ?\DateTime $pickupDate;
  496.     /**
  497.      * @var \DateTime|null
  498.      *
  499.      * @Column(name="complete_date", type="datetime", nullable=true)
  500.      */
  501.     private ?\DateTime $completeDate;
  502.     /**
  503.      * @var bool
  504.      *
  505.      * @Column(name="pre_invoice_code_recorded", type="boolean")
  506.      */
  507.     private bool $preinvoiceCodeRecorded = false;
  508.     /**
  509.      * @var bool
  510.      *
  511.      * @Column(name="invoice_code_recorded", type="boolean")
  512.      */
  513.     private bool $invoiceCodeRecorded = false;
  514.     /**
  515.      * @var array|null
  516.      * 
  517.      * @Column(name="received_products", type="json", nullable=true)
  518.      */
  519.     private ?array $receivedProducts = null;
  520.     public function __construct()
  521.     {
  522.         parent::__construct();
  523.         $this->documents = new ArrayCollection();
  524.     }
  525.     /**
  526.      * @return string[]
  527.      */
  528.     public static function getStatusChoices(): array
  529.     {
  530.         return [
  531.             self::STATUS_NEW           => 'New',
  532.             self::STATUS_INCOMING      => 'Incoming',
  533.             self::STATUS_ARRIVED       => 'Arrived',
  534.             self::STATUS_STARTED       => 'Started',
  535.             self::STATUS_IN_PRODUCTION => 'In production',
  536.             self::STATUS_FINISHED      => 'Finished',
  537.             self::STATUS_CANCELED      => 'Canceled',
  538.         ];
  539.     }
  540.     /**
  541.      * @return string[]
  542.      */
  543.     public static function getSupplierCategoryChoices(): array
  544.     {
  545.         return [
  546.             self::SUPPLIER_CATEGORY_WANTED_SALES       => 'Wanted sales',
  547.             self::SUPPLIER_CATEGORY_STANDARD_PURCHASE  => 'Standard purchase',
  548.             self::SUPPLIER_CATEGORY_STRATEGIC_PURCHASE => 'Strategic purchase',
  549.             self::SUPPLIER_CATEGORY_SPARE_PARTS        => 'Spare parts',
  550.             self::SUPPLIER_CATEGORY_NEW_PURCHASE       => 'New purchase',
  551.         ];
  552.     }
  553.     /**
  554.      * @return string[]
  555.      */
  556.     public static function getPaymentPriorityChoices(): array
  557.     {
  558.         return [
  559.             self::PAYMENT_PRIORITY_CREDIT  => 'Credit',
  560.             self::PAYMENT_PRIORITY_ADVANCE => 'Advance',
  561.             self::PAYMENT_PRIORITY_SPLIT   => 'Split',
  562.         ];
  563.     }
  564.     /**
  565.      * @return string[]
  566.      */
  567.     public static function getPaymentStatusChoices(): array
  568.     {
  569.         return [
  570.             self::PAYMENT_STATUS_UNPAID   => 'Unpaid',
  571.             self::PAYMENT_STATUS_PARTIAL  => 'Partial',
  572.             self::PAYMENT_STATUS_PAID     => 'Paid',
  573.             self::PAYMENT_STATUS_OVERPAID => 'Overpaid',
  574.         ];
  575.     }
  576.     /**
  577.      * @return array
  578.      */
  579.     public static function getProductChoices(): array
  580.     {
  581.         return [
  582.             self::PRODUCT_NOTEBOOK      => 'Notebook',
  583.             self::PRODUCT_PC            => 'PC',
  584.             self::PRODUCT_ALL_IN_ONE    => 'All In One',
  585.             self::PRODUCT_MONITOR       => 'Monitor', 
  586.             self::PRODUCT_SMARTPHONE    => 'Smartphone', 
  587.             self::PRODUCT_TABLET        => 'Tablet', 
  588.             self::PRODUCT_OTHER         => 'Other'
  589.         ];
  590.     }
  591.     /**
  592.      * @return array
  593.      */
  594.     public static function getClaimStatusChoices(): array 
  595.     {
  596.         return [
  597.             self::CLAIM_STATUS_QUANTITY_MISMATCH        => 'Quantity mismatch (stock)', 
  598.             self::CLAIN_STATUS_NOTHING_TO_COMPLAIN      => 'Nothing to complain about (production)', 
  599.             self::CLAIM_STATUS_IN_PROGRESS              => 'In progress (supply)', 
  600.             self::CLAIM_STATUS_NO_COMPLAIN              => 'Do not complain', 
  601.             self::CLAIM_STATUS_SEND_BACK                => 'We will send it back', 
  602.             self::CLAIM_STATUS_REJECTED                 => 'Rejected', 
  603.             self::CLAIM_STATUS_CREDIT_NOTE_NO_SEND_BACK => 'Credit note - we will not send it back', 
  604.             self::CLAIM_STATUS_CREDIT_NOTE_DEDUCTION    => 'Credit note - levonás köv.ut.', 
  605.             self::CLAIM_STATUS_CREDIT_NOTE_REFUND       => 'Credit note - visszafizetés', 
  606.             self::CLAIM_STATUS_COMPENSATION             => 'Product compensation (change)'
  607.         ];
  608.     }
  609.     /**
  610.      * @return array
  611.      */
  612.     public static function getTransportSuperviseChoices(): array
  613.     {
  614.         return [
  615.             self::TRANSPORT_SUPERVISE_SUPPLY    => 'Supply', 
  616.             self::TRANSPORT_SUPERVISE_PARTNER   => 'Partner', 
  617.             self::TRANSPORT_SUPERVISE_LOG       => 'Log'
  618.         ];
  619.     }
  620.     public function getShipmentId(): string
  621.     {
  622.         return $this->shipmentId;
  623.     }
  624.     public function setShipmentId(string $shipmentId): void
  625.     {
  626.         $this->shipmentId = $shipmentId;
  627.     }
  628.     /**
  629.      * @return User|null
  630.      */
  631.     public function getPurchaser(): ?User
  632.     {
  633.         return $this->purchaser;
  634.     }
  635.     /**
  636.      * @param User|null $purchaser
  637.      * @return void
  638.      */
  639.     public function setPurchaser(?User $purchaser): void
  640.     {
  641.         $this->purchaser = $purchaser;
  642.     }
  643.     /**
  644.      * @return Customer
  645.      */
  646.     public function getSupplier(): Customer
  647.     {
  648.         return $this->supplier;
  649.     }
  650.     /**
  651.      * @param Customer $supplier
  652.      * @return void
  653.      */
  654.     public function setSupplier(Customer $supplier): void
  655.     {
  656.         $this->supplier = $supplier;
  657.     }
  658.     /**
  659.      * @return int
  660.      */
  661.     public function getStatusId(): int
  662.     {
  663.         return $this->statusId;
  664.     }
  665.     /**
  666.      * @param int $statusId
  667.      * @return void
  668.      */
  669.     public function setStatusId(int $statusId): void
  670.     {
  671.         $this->statusId = $statusId;
  672.     }
  673.     /**
  674.      * @return string|null
  675.      */
  676.     public function getPreinvoiceLink(): ?string
  677.     {
  678.         return $this->preinvoiceLink;
  679.     }
  680.     /**
  681.      * @param string|null $preinvoiceLink
  682.      * @return void
  683.      */
  684.     public function setPreinvoiceLink(?string $preinvoiceLink): void
  685.     {
  686.         $this->preinvoiceLink = $preinvoiceLink;
  687.     }
  688.     /**
  689.      * @return string|null
  690.      */
  691.     public function getPreinvoiceCode(): ?string
  692.     {
  693.         return $this->preinvoiceCode;
  694.     }
  695.     /**
  696.      * @param string|null $preinvoiceCode
  697.      * @return void
  698.      */
  699.     public function setPreinvoiceCode(?string $preinvoiceCode): void
  700.     {
  701.         $this->preinvoiceCode = $preinvoiceCode;
  702.     }
  703.     /**
  704.      * @return string|null
  705.      */
  706.     public function getInvoiceLink(): ?string
  707.     {
  708.         return $this->invoiceLink;
  709.     }
  710.     /**
  711.      * @param string|null $invoiceLink
  712.      * @return void
  713.      */
  714.     public function setInvoiceLink(?string $invoiceLink): void
  715.     {
  716.         $this->invoiceLink = $invoiceLink;
  717.     }
  718.     /**
  719.      * @return string|null
  720.      */
  721.     public function getInvoiceCode(): ?string
  722.     {
  723.         return $this->invoiceCode;
  724.     }
  725.     /**
  726.      * @param string|null $invoiceCode
  727.      * @return void
  728.      */
  729.     public function setInvoiceCode(?string $invoiceCode): void
  730.     {
  731.         $this->invoiceCode = $invoiceCode;
  732.     }
  733.     /**
  734.      * @return string|null
  735.      */
  736.     public function getCreditNoteLink(): ?string
  737.     {
  738.         return $this->creditNoteLink;
  739.     }
  740.     /**
  741.      * @param string|null $creditNoteLink
  742.      * @return void
  743.      */
  744.     public function setCreditNoteLink(?string $creditNoteLink): void
  745.     {
  746.         $this->creditNoteLink = $creditNoteLink;
  747.     }
  748.     /**
  749.      * @return string|null
  750.      */
  751.     public function getCreditNoteCode(): ?string
  752.     {
  753.         return $this->creditNoteCode;
  754.     }
  755.     /**
  756.      * @param string|null $creditNoteCode
  757.      * @return void
  758.      */
  759.     public function setCreditNoteCode(?string $creditNoteCode): void
  760.     {
  761.         $this->creditNoteCode = $creditNoteCode;
  762.     }
  763.     /**
  764.      * @return string|null
  765.      */
  766.     public function getCreditNoteValue(): ?string
  767.     {
  768.         return $this->creditNoteValue;
  769.     }
  770.     /**
  771.      * @param string|null $creditNoteValue
  772.      */
  773.     public function setCreditNoteValue(?string $creditNoteValue): void
  774.     {
  775.         $this->creditNoteValue = $creditNoteValue;
  776.     }
  777.     /**
  778.      * @return string|null
  779.      */
  780.     public function getCreditNoteDeduct(): ?string
  781.     {
  782.         return $this->creditNoteDeduct;
  783.     }
  784.     /**
  785.      * @param string|null $creditNoteDeduct
  786.      */
  787.     public function setCreditNoteDeduct(?string $creditNoteDeduct): void
  788.     {
  789.         $this->creditNoteDeduct = $creditNoteDeduct;
  790.     }
  791.     /**
  792.      * @return string|null
  793.      */
  794.     public function getCreditNoteDeductShipment(): ?string
  795.     {
  796.         return $this->creditNoteDeductShipment;
  797.     }
  798.     /**
  799.      * @param string|null $creditNoteDeductShipment
  800.      * @return void
  801.      */
  802.     public function setCreditNoteDeductShipment(?string $creditNoteDeductShipment): void
  803.     {
  804.         $this->creditNoteDeductShipment = $creditNoteDeductShipment;
  805.     }
  806.     /**
  807.      * @return \DateTime|null
  808.      */
  809.     public function getOriginalSupplierListDate(): ?\DateTime
  810.     {
  811.         return $this->originalSupplierListDate;
  812.     }
  813.     /**
  814.      * @param \DateTime|null $originalSupplierListDate
  815.      * @return void
  816.      */
  817.     public function setOriginalSupplierListDate(?\DateTime $originalSupplierListDate): void
  818.     {
  819.         $this->originalSupplierListDate = $originalSupplierListDate;
  820.     }
  821.     /**
  822.      * @return string|null
  823.      */
  824.     public function getOriginalSupplierList(): ?string
  825.     {
  826.         return $this->originalSupplierList;
  827.     }
  828.     /**
  829.      * @param string|null $originalSupplierList
  830.      * @return void
  831.      */
  832.     public function setOriginalSupplierList(?string $originalSupplierList): void
  833.     {
  834.         $this->originalSupplierList = $originalSupplierList;
  835.     }
  836.     /**
  837.      * @return string|null
  838.      */
  839.     public function getOriginalSupplierListLink(): ?string
  840.     {
  841.         return $this->originalSupplierListLink;
  842.     }
  843.     /**
  844.      * @param string|null $originalSupplierListLink
  845.      * @return void
  846.      */
  847.     public function setOriginalSupplierListLink(?string $originalSupplierListLink): void
  848.     {
  849.         $this->originalSupplierListLink = $originalSupplierListLink;
  850.     }
  851.     /**
  852.      * @return int|null
  853.      */
  854.     public function getSupplierCategoryId(): ?int
  855.     {
  856.         return $this->supplierCategoryId;
  857.     }
  858.     /**
  859.      * @param int|null $supplierCategoryId
  860.      * @return void
  861.      */
  862.     public function setSupplierCategoryId(?int $supplierCategoryId): void
  863.     {
  864.         $this->supplierCategoryId = $supplierCategoryId;
  865.     }
  866.     public function getInDailyProductTurnover(): bool
  867.     {
  868.         return $this->inDailyProductTurnover;
  869.     }
  870.     public function setInDailyProductTurnover(bool $inDailyProductTurnover): void
  871.     {
  872.         $this->inDailyProductTurnover = $inDailyProductTurnover;
  873.     }
  874.     public function getQuarantineFinished(): bool
  875.     {
  876.         return $this->quarantineFinished;
  877.     }
  878.     public function setQuarantineFinished(bool $quarantineFinished): void
  879.     {
  880.         $this->quarantineFinished = $quarantineFinished;
  881.     }
  882.     public function getExpectedQuarantineRatio(): ?string
  883.     {
  884.         return $this->expectedQuarantineRatio;
  885.     }
  886.     public function setExpectedQuarantineRatio(?string $expectedQuarantineRatio): void
  887.     {
  888.         $this->expectedQuarantineRatio = ($expectedQuarantineRatio === '' || $expectedQuarantineRatio === null) ? null : $expectedQuarantineRatio;
  889.     }
  890.     /**
  891.      * @return int|null
  892.      */
  893.     public function getPaymentPriorityId(): ?int
  894.     {
  895.         return $this->paymentPriorityId;
  896.     }
  897.     /**
  898.      * @param int|null $paymentPriorityId
  899.      * @return void
  900.      */
  901.     public function setPaymentPriorityId(?int $paymentPriorityId): void
  902.     {
  903.         $this->paymentPriorityId = $paymentPriorityId;
  904.     }
  905.     /**
  906.      * @return \DateTime|null
  907.      */
  908.     public function getPlannedPaymentDate(): ?\DateTime
  909.     {
  910.         return $this->plannedPaymentDate;
  911.     }
  912.     /**
  913.      * @param \DateTime|null $plannedPaymentDate
  914.      * @return void
  915.      */
  916.     public function setPlannedPaymentDate(?\DateTime $plannedPaymentDate): void
  917.     {
  918.         $this->plannedPaymentDate = $plannedPaymentDate;
  919.     }
  920.     /**
  921.      * @return string
  922.      */
  923.     public function getCurrency(): string
  924.     {
  925.         return $this->currency;
  926.     }
  927.     /**
  928.      * @param string $currency
  929.      * @return void
  930.      */
  931.     public function setCurrency(string $currency): void
  932.     {
  933.         $this->currency = $currency;
  934.     }
  935.     /**
  936.      * @return string
  937.      */
  938.     public function getTotalPrice(): string
  939.     {
  940.         return $this->totalPrice;
  941.     }
  942.     /**
  943.      * @param string $totalPrice
  944.      */
  945.     public function setTotalPrice(string $totalPrice)
  946.     {
  947.         $this->totalPrice = $totalPrice;
  948.     }
  949.     /**
  950.      * @return \DateTime|null
  951.      */
  952.     public function getExpectedArrivalDateFrom(): ?\DateTime
  953.     {
  954.         return $this->expectedArrivalDateFrom;
  955.     }
  956.     /**
  957.      * @param \DateTime|null $expectedArrivalDateFrom
  958.      * @return void
  959.      */
  960.     public function setexpectedArrivalDateFrom(?\DateTime $expectedArrivalDateFrom): void
  961.     {
  962.         $this->expectedArrivalDateFrom = $expectedArrivalDateFrom;
  963.     }
  964.     /**
  965.      * @return \DateTime|string|null
  966.      */
  967.     public function getExpectedArrivalDateTo(): \DateTime|string|null
  968.     {
  969.         return $this->expectedArrivalDateTo;
  970.     }
  971.     /**
  972.      * @param \DateTime|null $expectedArrivalDateTo
  973.      * @return void
  974.      */
  975.     public function setExpectedArrivalDateTo(?\DateTime $expectedArrivalDateTo): void
  976.     {
  977.         $this->expectedArrivalDateTo = $expectedArrivalDateTo;
  978.     }
  979.     public function getConfirmedArrivalDate(): \DateTime|string|null
  980.     {
  981.         return $this->confirmedArrivalDate;
  982.     }
  983.     public function setConfirmedArrivalDate(\DateTime|string|null $confirmedArrivalDate): void
  984.     {
  985.         if (is_string($confirmedArrivalDate)) {
  986.             $confirmedArrivalDate = $confirmedArrivalDate !== '' ? new \DateTime($confirmedArrivalDate) : null;
  987.         }
  988.         $this->confirmedArrivalDate = $confirmedArrivalDate;
  989.     }
  990.     /**
  991.      * @return string
  992.      */
  993.     public function getPaidPrice(): string
  994.     {
  995.         return $this->paidPrice;
  996.     }
  997.     /**
  998.      * @param string $paidPrice
  999.      * @return void
  1000.      */
  1001.     public function setPaidPrice(string $paidPrice): void
  1002.     {
  1003.         $this->paidPrice = $paidPrice;
  1004.     }
  1005.     /**
  1006.      * @return string
  1007.      */
  1008.     public function getOrderedQuantity(): string
  1009.     {
  1010.         return $this->orderedQuantity;
  1011.     }
  1012.     /**
  1013.      * @param string $orderedQuantity
  1014.      * @return void
  1015.      */
  1016.     public function setOrderedQuantity(string $orderedQuantity): void
  1017.     {
  1018.         $this->orderedQuantity = $orderedQuantity;
  1019.     }
  1020.     /**
  1021.      * @return string
  1022.      */
  1023.     public function getReceivedQuantity(): string
  1024.     {
  1025.         return $this->receivedQuantity;
  1026.     }
  1027.     /**
  1028.      * @param string $receivedQuantity
  1029.      * @return void
  1030.      */
  1031.     public function setReceivedQuantity(string $receivedQuantity): void
  1032.     {
  1033.         $this->receivedQuantity = $receivedQuantity;
  1034.     }
  1035.     /**
  1036.      * @return int
  1037.      */
  1038.     public function getPaymentStatusId(): int
  1039.     {
  1040.         return $this->paymentStatusId;
  1041.     }
  1042.     /**
  1043.      * @param int $paymentStatusId
  1044.      * @return void
  1045.      */
  1046.     public function setPaymentStatusId(int $paymentStatusId): void
  1047.     {
  1048.         $this->paymentStatusId = $paymentStatusId;
  1049.     }
  1050.     /**
  1051.      * @return string
  1052.      */
  1053.     public function getReceivedPriceValue(): string
  1054.     {
  1055.         return $this->receivedPriceValue;
  1056.     }
  1057.     /**
  1058.      * @param string $receivedPriceValue
  1059.      * @return void
  1060.      */
  1061.     public function setReceivedPriceValue(string $receivedPriceValue): void
  1062.     {
  1063.         $this->receivedPriceValue = $receivedPriceValue;
  1064.     }
  1065.     /**
  1066.      * @return ArrayCollection|PersistentCollection
  1067.      */
  1068.     public function getDocuments()
  1069.     {
  1070.         return $this->documents;
  1071.     }
  1072.     /**
  1073.      * @return PersistentCollection
  1074.      */
  1075.     public function getStockMovements(): PersistentCollection
  1076.     {
  1077.         return $this->stockMovements;
  1078.     }
  1079.     /**
  1080.      * @param PersistentCollection $stockMovements
  1081.      * @return void
  1082.      */
  1083.     public function setStockMovements(PersistentCollection $stockMovements): void
  1084.     {
  1085.         $this->stockMovements = $stockMovements;
  1086.     }
  1087.     /**
  1088.      * @return string|null
  1089.      */
  1090.     public function getAikenLots(): ?string
  1091.     {
  1092.         return $this->aikenLots;
  1093.     }
  1094.     /**
  1095.      * @param string|null $aikenLots
  1096.      * @return void
  1097.      */
  1098.     public function setAikenLots(?string $aikenLots): void
  1099.     {
  1100.         $this->aikenLots = $aikenLots;
  1101.     }
  1102.     /**
  1103.      * @return string
  1104.      */
  1105.     public function getQuarantinePriceDropPercentage(): string
  1106.     {
  1107.         return $this->quarantinePriceDropPercentage;
  1108.     }
  1109.     /**
  1110.      * @param string $quarantinePriceDropPercentage
  1111.      * @return void
  1112.      */
  1113.     public function setQuarantinePriceDropPercentage(string $quarantinePriceDropPercentage): void
  1114.     {
  1115.         $this->quarantinePriceDropPercentage = $quarantinePriceDropPercentage;
  1116.     }
  1117.     /**
  1118.      * @return string|null
  1119.      */
  1120.     public function getStockSummaryLink(): ?string
  1121.     {
  1122.         return $this->stockSummaryLink;
  1123.     }
  1124.     /**
  1125.      * @param string|null $stockSummaryLink
  1126.      * @return void
  1127.      */
  1128.     public function setStockSummaryLink(?string $stockSummaryLink): void
  1129.     {
  1130.         $this->stockSummaryLink = $stockSummaryLink;
  1131.     }
  1132.     /**
  1133.      * @return array|null
  1134.      */
  1135.     public function getProducts(): ?array
  1136.     {
  1137.         return $this->products;
  1138.     }
  1139.     /**
  1140.      * @param array|null $products
  1141.      * 
  1142.      * @return void
  1143.      */
  1144.     public function setProducts(?array $products): void
  1145.     {
  1146.         $this->products = $products;
  1147.     }
  1148.     /**
  1149.      * @return User|null
  1150.      */
  1151.     public function getClaimSupervisor(): ?User
  1152.     {
  1153.         return $this->claimSupervisor;
  1154.     }
  1155.     /**
  1156.      * @param User|null $claimSupervisor
  1157.      * 
  1158.      * @return void
  1159.      */
  1160.     public function setClaimSupervisor(?User $claimSupervisor): void
  1161.     {
  1162.         $this->claimSupervisor = $claimSupervisor;
  1163.     }
  1164.     /**
  1165.      * @return int|null
  1166.      */
  1167.     public function getClaimStatus(): ?int
  1168.     {
  1169.         return $this->claimStatus;
  1170.     }
  1171.     /**
  1172.      * @param int|null $claimStatus
  1173.      * 
  1174.      * @return void
  1175.      */
  1176.     public function setClaimStatus(?int $claimStatus): void
  1177.     {
  1178.         $this->claimStatus = $claimStatus;
  1179.     }
  1180.     /**
  1181.      * @return \DateTime|null
  1182.      */
  1183.     public function getClaimStartDate(): ?\DateTime
  1184.     {
  1185.         return $this->claimStartDate;
  1186.     }
  1187.     /**
  1188.      * @param \DateTime|null $claimStartDate
  1189.      * 
  1190.      * @return void
  1191.      */
  1192.     public function setClaimStartDate(?\DateTime $claimStartDate): void
  1193.     {
  1194.         $this->claimStartDate = $claimStartDate;
  1195.     }
  1196.     /**
  1197.      * @return \DateTime|null
  1198.      */
  1199.     public function getClaimEndDate(): ?\DateTime
  1200.     {
  1201.         return $this->claimEndDate;
  1202.     }
  1203.     /**
  1204.      * @param \DateTime|null $claimEndDate
  1205.      * 
  1206.      * @return void
  1207.      */
  1208.     public function setClaimEndDate(?\DateTime $claimEndDate): void
  1209.     {
  1210.         $this->claimEndDate = $claimEndDate;
  1211.     }
  1212.     /**
  1213.      * @return string|null
  1214.      */
  1215.     public function getClaimNote(): ?string
  1216.     {
  1217.         return $this->claimNote;
  1218.     }
  1219.     /**
  1220.      * @param string|null $claimNote
  1221.      * 
  1222.      * @return void
  1223.      */
  1224.     public function setClaimNote(?string $claimNote): void
  1225.     {
  1226.         $this->claimNote = $claimNote;
  1227.     }
  1228.     /**
  1229.      * @return array|null
  1230.      */
  1231.     public function getClaimProducts(): ?array
  1232.     {
  1233.         return $this->claimProducts;
  1234.     }
  1235.     /**
  1236.      * @param array|null $claimProducts
  1237.      * 
  1238.      * @return void
  1239.      */
  1240.     public function setClaimProducts(?array $claimProducts): void
  1241.     {
  1242.         $this->claimProducts = $claimProducts;
  1243.     }
  1244.     /**
  1245.      * @return string|null
  1246.      */
  1247.     public function getClaimRMALink(): ?string
  1248.     {
  1249.         return $this->claimRMALink;
  1250.     }
  1251.     /**
  1252.      * @param string|null $claimRMALink
  1253.      * 
  1254.      * @return void
  1255.      */
  1256.     public function setClaimRMALink(?string $claimRMALink): void
  1257.     {
  1258.         $this->claimRMALink = $claimRMALink;
  1259.     }
  1260.     /**
  1261.      * @return \DateTime|null
  1262.      */
  1263.     public function getPaidDate(): ?\DateTime
  1264.     {
  1265.         return $this->paidDate;
  1266.     }
  1267.     /**
  1268.      * @param \DateTime|null $paidDate
  1269.      */
  1270.     public function setPaidDate(?\DateTime $paidDate): void
  1271.     {
  1272.         $this->paidDate = $paidDate;
  1273.     }
  1274.     /**
  1275.      * @return User|null
  1276.      */
  1277.     public function getPaidBy(): ?User
  1278.     {
  1279.         return $this->paidBy;
  1280.     }
  1281.     /**
  1282.      * @param User|null $paidBy
  1283.      */
  1284.     public function setPaidBy(?User $paidBy): void
  1285.     {
  1286.         $this->paidBy = $paidBy;
  1287.     }
  1288.     /**
  1289.      * @return string|null
  1290.      */
  1291.     public function getPohodaNo(): ?string
  1292.     {
  1293.         return $this->pohodaNo;
  1294.     }
  1295.     /**
  1296.      * @param string|null $pohodaNo
  1297.      */
  1298.     public function setPohodaNo(?string $pohodaNo): void 
  1299.     {
  1300.         $this->pohodaNo = $pohodaNo;
  1301.     }
  1302.     /**
  1303.      * @return string|null
  1304.      */
  1305.     public function getConfigListLink(): ?string
  1306.     {
  1307.         return $this->configListLink;
  1308.     }
  1309.     /**
  1310.      * @param string|null $configListLink
  1311.      */
  1312.     public function setConfigListLink(?string $configListLink): void 
  1313.     {
  1314.         $this->configListLink = $configListLink;
  1315.     }
  1316.     /**
  1317.      * @return \DateTime|null
  1318.      */
  1319.     public function getConfigListDate(): ?\DateTime
  1320.     {
  1321.         return $this->configListDate;
  1322.     }
  1323.     /**
  1324.      * @param \DateTime|null $configListDate
  1325.      */
  1326.     public function setConfigListDate(?\DateTime $configListDate): void
  1327.     {
  1328.         $this->configListDate = $configListDate;
  1329.     }
  1330.     /**
  1331.      * @return string|null
  1332.      */
  1333.     public function getFinanceNote(): ?string
  1334.     {
  1335.         return $this->financeNote;
  1336.     }
  1337.     /**
  1338.      * @param string|null $financeNote
  1339.      */
  1340.     public function setFinanceNote(?string $financeNote): void 
  1341.     {
  1342.         $this->financeNote = $financeNote;
  1343.     }
  1344.     /**
  1345.      * @return string|null
  1346.      */
  1347.     public function getMergedShipments(): ?string
  1348.     {
  1349.         return $this->mergedShipments;
  1350.     }
  1351.     /**
  1352.      * @param string|null $mergedShipments
  1353.      */
  1354.     public function setMergedShipments(?string $mergedShipments): void 
  1355.     {
  1356.         $this->mergedShipments = $mergedShipments;
  1357.     }
  1358.     /**
  1359.      * @return string|null
  1360.      */
  1361.     public function getTransportNo(): ?string
  1362.     {
  1363.         return $this->transportNo;
  1364.     }
  1365.     /**
  1366.      * @param string|null $transportNo
  1367.      */
  1368.     public function setTransportNo(?string $transportNo): void 
  1369.     {
  1370.         $this->transportNo = $transportNo;
  1371.     }
  1372.     /**
  1373.      * @return string|null
  1374.      */
  1375.     public function getTransportLink(): ?string
  1376.     {
  1377.         return $this->transportLink;
  1378.     }
  1379.     /**
  1380.      * @param string|null $transportLink
  1381.      */
  1382.     public function setTransportLink(?string $transportLink): void 
  1383.     {
  1384.         $this->transportLink = $transportLink;
  1385.     }
  1386.     /**
  1387.      * @return string|null
  1388.      */
  1389.     public function getCarrierCompany(): ?string
  1390.     {
  1391.         return $this->carrierCompany;
  1392.     }
  1393.     /**
  1394.      * @param string|null $carrierCompany
  1395.      */
  1396.     public function setCarrierCompany(?string $carrierCompany): void 
  1397.     {
  1398.         $this->carrierCompany = $carrierCompany;
  1399.     }
  1400.     /**
  1401.      * @return string
  1402.      */
  1403.     public function getCarrierFee(): string
  1404.     {
  1405.         return $this->carrierFee;
  1406.     }
  1407.     /**
  1408.      * @param string $carrierFee
  1409.      */
  1410.     public function setCarrierFee(string $carrierFee): void
  1411.     {
  1412.         $this->carrierFee = $carrierFee;
  1413.     }
  1414.     /**
  1415.      * @return bool
  1416.      */
  1417.     public function getCustoms(): bool
  1418.     {
  1419.         return $this->customs;
  1420.     }
  1421.     /**
  1422.      * @param bool $customs
  1423.      */
  1424.     public function setCustoms(bool $customs): void
  1425.     {
  1426.         $this->customs = $customs;
  1427.     }
  1428.     /**
  1429.      * @return string
  1430.      */
  1431.     public function getCustomsDuty(): string
  1432.     {
  1433.         return $this->customsDuty;
  1434.     }
  1435.     /**
  1436.      * @param string $customsDuty
  1437.      */
  1438.     public function setCustomsDuty(string $customsDuty): void
  1439.     {
  1440.         $this->customsDuty = $customsDuty;
  1441.     }
  1442.     /**
  1443.      * @return string|null
  1444.      */
  1445.     public function getNote(): ?string
  1446.     {
  1447.         return $this->note;
  1448.     }
  1449.     /**
  1450.      * @param string|null $note
  1451.      */
  1452.     public function setNote(?string $note): void 
  1453.     {
  1454.         $this->note = $note;
  1455.     }
  1456.     /**
  1457.      * @return string|null
  1458.      */
  1459.     public function getPurchaseOrder(): ?string
  1460.     {
  1461.         return $this->purchaseOrder;
  1462.     }
  1463.     /**
  1464.      * @param string|null $purchaseOrder
  1465.      */
  1466.     public function setPurchaseOrder(?string $purchaseOrder): void 
  1467.     {
  1468.         $this->purchaseOrder = $purchaseOrder;
  1469.     }
  1470.     /**
  1471.      * @return string|null
  1472.      */
  1473.     public function getSupplyNote(): ?string
  1474.     {
  1475.         return $this->supplyNote;
  1476.     }
  1477.     /**
  1478.      * @param string|null $supplyNote
  1479.      */
  1480.     public function setSupplyNote(?string $supplyNote): void 
  1481.     {
  1482.         $this->supplyNote = $supplyNote;
  1483.     }
  1484.     /**
  1485.      * @return string|null
  1486.      */
  1487.     public function getWaitingPricing(): ?string
  1488.     {
  1489.         return $this->waitingPricing;
  1490.     }
  1491.     /**
  1492.      * @param string|null $waitingPricing
  1493.      */
  1494.     public function setWaitingPricing(?string $waitingPricing): void 
  1495.     {
  1496.         $this->waitingPricing = $waitingPricing;
  1497.     }
  1498.     /**
  1499.      * @return string|null
  1500.      */
  1501.     public function getSuperviseTransport(): ?string
  1502.     {
  1503.         return $this->superviseTransport;
  1504.     }
  1505.     /**
  1506.      * @param string|null $superviseTransport
  1507.      */
  1508.     public function setSuperviseTransport(?string $superviseTransport): void 
  1509.     {
  1510.         $this->superviseTransport = $superviseTransport;
  1511.     }
  1512.     /**
  1513.      * @return int
  1514.      */
  1515.     public function getQuantity(): int
  1516.     {
  1517.         return $this->quantity;
  1518.     }
  1519.     /**
  1520.      * @param int $quantity
  1521.      */
  1522.     public function setQuantity(int $quantity): void 
  1523.     {
  1524.         $this->quantity = $quantity;
  1525.     }
  1526.     /**
  1527.      * @return float
  1528.      */
  1529.     public function getWeight(): float
  1530.     {
  1531.         return $this->weight;
  1532.     }
  1533.     /**
  1534.      * @param float $weight
  1535.      */
  1536.     public function setWeight(float $weight): void 
  1537.     {
  1538.         $this->weight = $weight;
  1539.     }
  1540.     /**
  1541.      * @return string|null
  1542.      */
  1543.     public function getCountry(): ?string
  1544.     {
  1545.         return $this->country;
  1546.     }
  1547.     /**
  1548.      * @param string|null $country
  1549.      */
  1550.     public function setCountry(?string $country): void 
  1551.     {
  1552.         $this->country = $country;
  1553.     }
  1554.     /**
  1555.      * @return string|null
  1556.      */
  1557.     public function getPickupTruck(): ?string
  1558.     {
  1559.         return $this->pickupTruck;
  1560.     }
  1561.     /**
  1562.      * @param string|null $pickupTruck
  1563.      */
  1564.     public function setPickupTruck(?string $pickupTruck): void 
  1565.     {
  1566.         $this->pickupTruck = $pickupTruck;
  1567.     }
  1568.     /**
  1569.      * @return \DateTime|null
  1570.      */
  1571.     public function getPickupDate(): ?\DateTime
  1572.     {
  1573.         return $this->pickupDate;
  1574.     }
  1575.     /**
  1576.      * @param \DateTime|null $pickupDate
  1577.      */
  1578.     public function setPickupDate(?\DateTime $pickupDate): void
  1579.     {
  1580.         $this->pickupDate = $pickupDate;
  1581.     }
  1582.     /**
  1583.      * @return \DateTime|null
  1584.      */
  1585.     public function getCompleteDate(): ?\DateTime
  1586.     {
  1587.         return $this->completeDate;
  1588.     }
  1589.     /**
  1590.      * @param \DateTime|null $completeDate
  1591.      */
  1592.     public function setCompleteDate(?\DateTime $completeDate): void
  1593.     {
  1594.         $this->completeDate = $completeDate;
  1595.     }
  1596.     /**
  1597.      * @return array|null
  1598.      */
  1599.     public function getReceivedProducts(): ?array
  1600.     {
  1601.         if ($this->receivedProducts === null) {
  1602.             return null;
  1603.         }
  1604.         $data = $this->receivedProducts;
  1605.         if (isset($data['received_date']) && is_string($data['received_date'])) {
  1606.             $parsed = \DateTimeImmutable::createFromFormat('Y.n.j\TH:i', $data['received_date'])
  1607.                 ?: \DateTimeImmutable::createFromFormat('Y.m.d\TH:i', $data['received_date']);
  1608.             if ($parsed !== false) {
  1609.                 $data['received_date'] = $parsed->format('Y-m-d\TH:i');
  1610.             }
  1611.         }
  1612.         return $data;
  1613.     }
  1614.     /**
  1615.      * @param array|null $receivedProducts
  1616.      * 
  1617.      * @return void
  1618.      */
  1619.     public function setReceivedProducts(?array $receivedProducts): void
  1620.     {
  1621.         $this->receivedProducts = $receivedProducts;
  1622.     }
  1623.     /**
  1624.      * @return array|null
  1625.      */
  1626.     public function getProduction(): ?array
  1627.     {
  1628.         return $this->production;
  1629.     }
  1630.     /**
  1631.      * @param array|null $production
  1632.      * @return void
  1633.      */
  1634.     public function setProduction(?array $production): void
  1635.     {
  1636.         $this->production = $production;
  1637.     }
  1638.     /**
  1639.      * @return bool
  1640.      */
  1641.     public function getPreinvoiceCodeRecorded(): bool
  1642.     {
  1643.         return $this->preinvoiceCodeRecorded;
  1644.     }
  1645.     /**
  1646.      * @param bool $preinvoiceCodeRecorded
  1647.      * @return void
  1648.      */
  1649.     public function setPreinvoiceCodeRecorded(bool $preinvoiceCodeRecorded): void
  1650.     {
  1651.         $this->preinvoiceCodeRecorded = $preinvoiceCodeRecorded;
  1652.     }
  1653.     /**
  1654.      * @return bool
  1655.      */
  1656.     public function getInvoiceCodeRecorded(): bool
  1657.     {
  1658.         return $this->invoiceCodeRecorded;
  1659.     }
  1660.     /**
  1661.      * @param bool $invoiceCodeRecorded
  1662.      * @return void
  1663.      */
  1664.     public function setInvoiceCodeRecorded(bool $invoiceCodeRecorded): void
  1665.     {
  1666.         $this->invoiceCodeRecorded = $invoiceCodeRecorded;
  1667.     }
  1668. }