src/Entity/Vehicles.php line 32

  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\Common\Collections\ArrayCollection;
  4. use Doctrine\Common\Collections\Collection;
  5. use Symfony\Component\Validator\Constraints as Assert;
  6. use Doctrine\ORM\Mapping\Id;
  7. use Doctrine\ORM\Mapping\Index;
  8. use Doctrine\ORM\Mapping\Entity;
  9. use Doctrine\ORM\Mapping\Table;
  10. use Doctrine\ORM\Mapping\Column;
  11. use Doctrine\ORM\Mapping\JoinColumn;
  12. use Doctrine\ORM\Mapping\ManyToOne;
  13. use Doctrine\ORM\Mapping\OneToOne;
  14. use Doctrine\ORM\Mapping\OneToMany;
  15. use Doctrine\ORM\Mapping\GeneratedValue;
  16. use Doctrine\ORM\Mapping\HasLifecycleCallbacks;
  17. use Doctrine\ORM\Mapping\PrePersist;
  18. /**
  19.  * Vehicles
  20.  */
  21. #[Entity(repositoryClass\App\Entity\VehiclesRepository::class)]
  22. #[HasLifecycleCallbacks]
  23. #[Table(name'vehicles')]
  24. #[Index(name'parent_vehicle_fk_idx'columns: ['parent_vehicle_id'])]
  25. #[Index(name'created_by_fk_idx'columns: ['created_by'])]
  26. #[Index(name'updated_by_fk_idx'columns: ['updated_by'])]
  27. #[Index(name'approved_by_fk_idx'columns: ['approved_by'])]
  28. #[UniqueConstraint(name'vehicle_number_UNIQUE'columns: ['vehicle_number'])]
  29. class Vehicles
  30. {
  31.     public $copyOfVehicleId;
  32.     /**
  33.      * @var integer
  34.      */
  35.     #[Column(name'vehicle_id'type'integer'nullablefalse)]
  36.     #[Id]
  37.     #[GeneratedValue(strategy'IDENTITY')]
  38.     private $vehicleId;
  39.     /**
  40.      * @var string
  41.      */
  42.     #[Column(name'state'type'json'length255nullabletrue)]
  43.     private $state;
  44.     /**
  45.      * @var string
  46.      */
  47.     #[Column(name'vehicle_number'type'string'length45nullabletrue)]
  48.     private $vehicleNumber;
  49.     /**
  50.      * @var \DateTime
  51.      */
  52.     #[Column(name'created_at'type'datetime'nullabletrue)]
  53.     private $createdAt;
  54.     /**
  55.      * @var \DateTime
  56.      */
  57.     #[Column(name'updated_at'type'datetime'nullabletrue)]
  58.     private $updatedAt;
  59.     /**
  60.      * @var string
  61.      */
  62.     #[Column(name'situation'type'string'nullabletruecolumnDefinition"enum('Delivered','Delivered_To_Buyer','Lost','New','Not_Received','Pending','Received','Returned','Sold','Transferred','Under_Transportation','Sold_And_Closed')")]
  63.     private $situation 'New';
  64.     /**
  65.      * available situations.
  66.      */
  67.     const SITUATIONS = [
  68.         'New'                  => 'New',
  69.         'Under_Transportation' => 'Under_Transportation',
  70.         'Received'             => 'Received',
  71.         'Sold'                 => 'Sold',
  72.         'Delivered_To_Buyer'   => 'Delivered_To_Buyer',
  73.         'Transferred'          => 'Transferred',
  74.         'Sold_And_Closed' => 'Sold_And_Closed',
  75.         'Not_Received'         => 'Not_Received',
  76.         'Returned'             => 'Returned',
  77.         'Lost'                 => 'Lost',
  78.         'Pending'              => 'Pending',
  79.         'Delivered'            => 'Delivered',
  80.         'In_Repair'            => 'In_Repair'
  81.     ];
  82.     /**
  83.      * available states.
  84.      */
  85.     const VEHICLE_STATE_NOT_SOLD                        'Not_Sold';
  86.     const VEHICLE_STATE_SOLD                            'Sold';
  87.     const VEHICLE_STATE_SOLD_AND_CLOSED                 'Sold_And_Closed';
  88.     const VEHICLE_STATE_NEW                             'New';
  89.     const VEHICLE_STATE_REQUESTED_FOR_TRANSPORTATION    'Requested_For_Transportation';
  90.     const VEHICLE_STATE_UNDER_TRANSPORTATION            'Under_Transportation';
  91.     const VEHICLE_STATE_RECEIVED                        'Received';
  92.     const VEHICLE_STATE_NOT_RECEIVED                    'Not_Received';
  93.     const VEHICLE_STATE_READY_FOR_RETURN                'Ready_For_Return';
  94.     const VEHICLE_STATE_RETURNED                        'Returned';
  95.     const VEHICLE_STATE_READY_FOR_REPAIR                'Ready_For_Repair';
  96.     const VEHICLE_STATE_IN_REPAIR                       'In_Repair';
  97.     const VEHICLE_STATE_LOST                            'Lost';
  98.     const VEHICLE_STATE_DELIVERED_TO_BUYER              'Delivered_To_Buyer';
  99.     const VEHICLE_STATE_DELIVERED_TO_3RD_PARTY          'Delivered_To_3rd_Party';
  100.     const VEHICLE_STATE_NOT_TRANSFERRED                 'Not_Transferred';
  101.     const VEHICLE_STATE_TRANSFERRED_TO_TJR              'Transferred_To_Tjr';
  102.     const VEHICLE_STATE_TRANSFERRED_TO_BUYER            'Transferred_To_Buyer';
  103.     const VEHICLE_STATE_DROPPED                         'Dropped';
  104.     const VEHICLE_STATE_NOT_PERMITTED_TO_EXIT           'Not_Permitted_To_Exit';
  105.     const VEHICLE_STATE_PERMITTED_TO_EXIT               'Permitted_To_Exit';
  106.     const VEHICLE_STATE_PENDING                         'Pending';
  107.     /**
  108.      * available Operations (transitions).
  109.      */
  110.     const VEHICLE_TRANSITION_CREATE_NEW                 'Create_New';
  111.     const VEHICLE_TRANSITION_ADD_REVOKE_REQUEST_FOR_NEW 'Add_Revoke_Request_For_New';
  112.     const VEHICLE_TRANSITION_ADD_DIRECT_STORAGE_FOR_NEW 'Add_Direct_Storage_For_New';
  113.     const VEHICLE_TRANSITION_MARK_AS_NOT_RECEIVED       'Mark_As_Not_Received';
  114.     const VEHICLE_TRANSITION_ADD_REVOKE_REQUEST_FOR_NOT_RECEIVED'Add_Revoke_Request_For_Not_Received';
  115.     const VEHICLE_TRANSITION_ADD_TRANSPORT_AND_STORAGE_ACTIVITY_TO_REQUESTED_FOR_TRANSPORTATION 'Add_Transport_And_Storage_Activity_To_Requested_For_Transportation';
  116.     const VEHICLE_TRANSITION_ADD_TRANSPORT_TO_3RD_PARTY_ACTIVITY_TO_REQUESTED_FOR_TRANSPORTATION 'Add_Transport_To_3rd_Party_Activity_To_Requested_For_Transportation';
  117.     const VEHICLE_TRANSITION_ADD_RECEIVING_DATE_TO_UNDER_TRANSPORTATION 'Add_Receiving_Date_To_Under_Transportation';
  118.     const VEHICLE_TRANSITION_MARK_UNDER_TRANSPORTATION_AS_READY_FOR_RETURN 'Mark_Under_Transportation_As_Ready_For_Return';
  119.     const VEHICLE_TRANSITION_MARK_RECEIVED_AS_READY_FOR_RETURN 'Mark_Received_As_Ready_For_Return';
  120.     const VEHICLE_TRANSITION_RETURN_VEHICLE             'Return_Vehicle';
  121.     const VEHICLE_TRANSITION_ADD_REVOKE_REQUEST_FOR_RETURNED 'Add_Revoke_Request_For_Returned';
  122.     const VEHICLE_TRANSITION_MARKING_NOT_TRANSFERRED_AS_LOST 'Marking_Not_Transferred_As_Lost';
  123.     const VEHICLE_TRANSITION_MARK_RECEIVED_AS_READY_FOR_REPAIR 'Mark_Received_As_Ready_For_Repair';
  124.     const VEHICLE_TRANSITION_MARK_AS_OUT_FOR_REPAIR 'Mark_As_Out_For_Repair';
  125.     const VEHICLE_TRANSITION_MARKING_IN_REPAIR_AS_RECEIVED 'Marking_In_Repair_As_Received';
  126.     const VEHICLE_TRANSITION_APPROVING_SALE 'Approving_Sale';
  127.     const VEHICLE_TRANSITION_PERMITTING_EXIT 'Permitting_Exit';
  128.     const VEHICLE_TRANSITION_CANCELING_SALE 'Canceling_Sale';
  129.     const VEHICLE_TRANSITION_UNPERMITTING_EXIT 'Unpermitting_Exit';
  130.     const VEHICLE_TRANSITION_RECEIVING_DELIVERED_TO_BUYER 'Receiving_Delivered_To_Buyer';
  131.     const VEHICLE_TRANSITION_APPROVING_OT_TRANSFER_TO_TJR 'Approve_OT_Transfer_To_Tjr';
  132.     const VEHICLE_TRANSITION_APPROVING_OT_TRANSFER_TO_BUYER 'Approving_OT_Transfer_To_Buyer';
  133.     const VEHICLE_TRANSITION_APPROVING_DROP 'Approving_Drop';
  134.     const VEHICLE_TRANSITION_DELIVERING_TO_BUYER 'Delivering_To_Buyer';
  135.     const VEHICLE_TRANSITION_MARKING_SOLD_AND_CLOSED_FOR_TRANSFERRED_TO_BUYER 'Marking_Sold_And_Closed_For_Transferred_To_Buyer';
  136.     const VEHICLE_TRANSITION_MARKING_SOLD_AND_CLOSED_FOR_DROPPED 'Marking_Sold_And_Closed_For_Dropped';
  137.     /**
  138.      * @var integer
  139.      */
  140.     #[Column(name'offerability_for_sale'type'string'nullablefalsecolumnDefinition"enum('Sale_Unfulfilled','Sale_Fulfilled','Marked_For_Sale','Unavailable_For_Sale')")]
  141.     private $offerabilityForSale 'Sale_Unfulfilled';
  142.     /**
  143.      * Vehicle readiness cases for sale
  144.      */
  145.     const SALE_OFFERABILITY = [
  146.         'Sale_Unfulfilled'     => 'Sale_Unfulfilled',
  147.         'Sale_Fulfilled'       => 'Sale_Fulfilled',
  148.         'Marked_For_Sale'      => 'Marked_For_Sale',
  149.         'Unavailable_For_Sale' => 'Unavailable_For_Sale'
  150.     ];
  151.     const Vehicle_Location_State = [
  152.         'New'=>'New',
  153.         'Requested_For_Transportation'=>'Requested_For_Transportation',
  154.         'Under_Transportation'=>'Under_Transportation',
  155.         'Not_Received'=>'Not_Received',
  156.         'Delivered_To_3rd_Party'=>'Delivered_To_3rd_Party',
  157.         'Received'=>'Received',
  158.         'Ready_For_Return'=>'Ready_For_Return',
  159.         'Returned'=>'Returned',
  160.         'Lost'=>'Lost',
  161.         'Ready_For_Repair'=>'Ready_For_Repair',
  162.         'In_Repair'=>'In_Repair',
  163.         'Delivered_To_Buyer'=>'Delivered_To_Buyer'
  164.     ];
  165.     const Vehicle_Sale_State = [
  166.         'Not_Sold'=>'Not_Sold',
  167.         'Sold'=>'Sold',
  168.         'Sold_And_Closed'=>'Sold_And_Closed'
  169.     ];
  170.     const Vehicle_OT_State = [
  171.         'Not_Transferred'=>'Not_Transferred',
  172.         'Dropped'=>'Dropped',
  173.         'Transferred_To_Tjr'=>'Transferred_To_Tjr',
  174.         'Transferred_To_Buyer'=>'Transferred_To_Buyer'
  175.     ];
  176.     const Vehicle_Exit_State = [
  177.         'Not_Permitted_To_Exit'=>'Not_Permitted_To_Exit',
  178.         'Permitted_To_Exit'=>'Permitted_To_Exit'
  179.     ];
  180.     /**
  181.      * @var string
  182.      */
  183.     #[Column(name'status'type'string'nullabletruecolumnDefinition"enum('Omitted_Panel','New_Panel','Instantly_Transfer','Replaced_Panel','Change_Actual_User','Total_Burn','Unsellable','Sinked','Sinked_Working','Hit_Working')")]
  184.     private $status;
  185.     /**
  186.      * available statuses
  187.      */
  188.     const STATUSES = [
  189.         'Omitted_Panel'      => 'Omitted_Panel',
  190.         'New_Panel'          => 'New_Panel',
  191.         'Replaced_Panel'     => 'Replaced_Panel',
  192.         'Instantly_Transfer' => 'Instantly_Transfer',
  193.         'Change_Actual_User' => 'Change_Actual_User',
  194.         'Total_Burn'         => 'Total_Burn',
  195.         'Unsellable'         => 'Unsellable',
  196.         'Sinked'             => 'Sinked',
  197.         'Sinked_Working'     => 'Sinked_Working',
  198.         'Hit_Working'        => 'Hit_Working'
  199.     ];
  200.     /**
  201.      * @var integer
  202.      */
  203.     #[Column(name'is_deleted'type'smallint'nullabletrue)]
  204.     private $isDeleted;
  205.     /**
  206.      * @var integer
  207.      */
  208.     #[Column(name'is_approved'type'smallint'nullabletrue)]
  209.     private $isApproved;
  210.     /**
  211.      * @var \DateTime
  212.      */
  213.     #[Column(name'inspection_expiration_date'type'date'nullabletrue)]
  214.     private $inspectionExpirationDate;
  215.     /**
  216.      * @var \DateTime
  217.      */
  218.     #[Column(name'insurance_start_date'type'date'nullabletrue)]
  219.     private $insuranceStartDate;
  220.     /**
  221.      * @var \DateTime
  222.      */
  223.     #[Column(name'insurance_expiry_date'type'date'nullabletrue)]
  224.     private $insuranceExpiryDate;
  225.     /**
  226.      * @var \DateTime
  227.      */
  228.     #[Column(name'exit_date'type'datetime'nullabletrue)]
  229.     private $exitDate;
  230.     /**
  231.      * @var \Users
  232.      */
  233.     #[ManyToOne(targetEntity\Users::class)]
  234.     #[JoinColumn(name'approved_by'referencedColumnName'user_id')]
  235.     private $approvedBy;
  236.     /**
  237.      * @var \Users
  238.      */
  239.     #[ManyToOne(targetEntity\Users::class)]
  240.     #[JoinColumn(name'created_by'referencedColumnName'user_id')]
  241.     private $createdBy;
  242.     /**
  243.      * @var \Vehicles
  244.      */
  245.     #[ManyToOne(targetEntity\Vehicles::class)]
  246.     #[JoinColumn(name'parent_vehicle_id'referencedColumnName'vehicle_id')]
  247.     private $parentVehicle;
  248.     /**
  249.      * @var \Users
  250.      */
  251.     #[ManyToOne(targetEntity\Users::class)]
  252.     #[JoinColumn(name'updated_by'referencedColumnName'user_id')]
  253.     private $updatedBy;
  254.     /**
  255.      * @var Collection|VehicleInventoryMissingParts[]
  256.      */
  257.     #[OneToMany(targetEntity\VehicleInventoryMissingParts::class, mappedBy'vehicle')]
  258.     private $inventoryMissingParts;
  259.     /**
  260.      * @var VehicleOtherMissingParts[]
  261.      */
  262.     #[OneToMany(targetEntity\VehicleOtherMissingParts::class, mappedBy'vehicle')]
  263.     private $otherMissingParts;
  264.     /**
  265.      * @var VehicleInventoryImages[]
  266.      */
  267.     #[OneToMany(targetEntity\VehicleInventoryImages::class, mappedBy'vehicle')]
  268.     private $inventoryImages;
  269.     /**
  270.      * @var vehicleRegistrations
  271.      */
  272.     #[OneToOne(targetEntity\VehicleRegistrations::class, mappedBy'vehicle')]
  273.     private $vehicleRegistrations;
  274.     /**
  275.      * @var vehicleTechnicalSpecs
  276.      */
  277.     #[OneToOne(targetEntity\VehicleTechnicalSpecs::class, mappedBy'vehicle')]
  278.     private $vehicleTechnicalSpecs;
  279.     /**
  280.      * @var vehicleBeneficiaryDetails
  281.      */
  282.     #[OneToOne(targetEntity\VehicleBeneficiaryDetails::class, mappedBy'vehicle')]
  283.     private $vehicleBeneficiaryDetails;
  284.     /**
  285.      * @var VehicleRevokeRequests[]
  286.      */
  287.     #[OneToMany(targetEntity\VehicleRevokeRequests::class, mappedBy'vehicle')]
  288.     private $vehicleRevokeRequest;
  289.     /**
  290.      * Vehicle Documents, particularly: inspection, traffic print, accident report and compensation letter documents
  291.      * @var vehicleDocument[]
  292.      */
  293.     #[OneToMany(targetEntity\VehicleDocs::class, mappedBy'vehicle')]
  294.     private $vehicleDocument;
  295.     /**
  296.      * @var activityEstimateVal
  297.      */
  298.     #[OneToMany(targetEntity\VehicleRtsActivitiesEstimateVal::class, mappedBy'vehicle'cascade: ['merge'])]
  299.     private $activityEstimateVal;
  300.     /**
  301.      * @var vehicleSales[]
  302.      */
  303.     #[OneToMany(targetEntity\VehicleSales::class, mappedBy'vehicle')]
  304.     private $vehicleSales;
  305.     /**
  306.      * Get vehicleId
  307.      *
  308.      * @return integer
  309.      */
  310.     public function getVehicleId()
  311.     {
  312.         return $this->vehicleId;
  313.     }
  314.     /**
  315.      * Set vehicleId
  316.      *
  317.      * @param string $vehicleId
  318.      *
  319.      * @return Vehicles
  320.      */
  321.     public function setVehicleId($vehicleId)
  322.     {
  323.         $this->vehicleId $vehicleId;
  324.         return $this;
  325.     }
  326.     /**
  327.      * @var \DateTime
  328.      */
  329.     #[Column(name'receiving_at'type'datetime'nullabletrue)]
  330.     private $receivingAt;
  331.     /**
  332.      * THE OLD Get vehicleId
  333.      *
  334.      * @return binary
  335.      */
  336.     public function getVehicleIdOLD()
  337.     {
  338.         //If $this->vehicleId is of string datatype not resource datatype then we just need to return the string value.
  339.         //that is just occured if the preSave() method was called
  340.         if(is_string($this->vehicleId)){
  341.             $this->copyOfVehicleId$this->vehicleId;
  342.             return $this->vehicleId;
  343.         }
  344.         //If $this->vehicleId is a resource, for unknown reason, after calling this method for the first time, the
  345.         // property $this->vehicleId data is cleared! So, we are keeping keeping a copy of it
  346.         if (is_resource($this->vehicleId) && empty($this->copyOfVehicleId) ){
  347.             //convert binary value thar the resource holds to binary string
  348.             $this->copyOfVehicleIdstream_get_contents($this->vehicleId);
  349. //            return 'ID datatype:'. \Doctrine\Common\Util\Debug::dump($this->vehicleId, 2, false, false). ' & Data1:'. $this->vehicleIdBkp;
  350.             return $this->copyOfVehicleId;
  351.         }
  352. //        return \Doctrine\Common\Util\Debug::dump($this->vehicleIdBkp, 2, false, false). " & DATA2:". $this->vehicleIdBkp;
  353.         return $this->copyOfVehicleId;
  354.     }
  355.     /**
  356.      * Set vehicleNumber
  357.      *
  358.      * @param string $vehicleNumber
  359.      *
  360.      * @return Vehicles
  361.      */
  362.     public function setVehicleNumber($vehicleNumber)
  363.     {
  364.         $this->vehicleNumber $vehicleNumber;
  365.         return $this;
  366.     }
  367.     /**
  368.      * Get vehicleNumber
  369.      *
  370.      * @return string
  371.      */
  372.     public function getVehicleNumber()
  373.     {
  374.         return $this->vehicleNumber;
  375.     }
  376.     /**
  377.      * Set state
  378.      *
  379.      * @param string $state
  380.      *
  381.      * @return Vehicles
  382.      */
  383.     public function setState($state)
  384.     {
  385.         $this->state $state;
  386.         return $this;
  387.     }
  388.     /**
  389.      * Get state
  390.      *
  391.      * @return string
  392.      */
  393.     public function getState()
  394.     {
  395.         return $this->state;
  396.     }
  397.     /**
  398.      * Has state
  399.      * check if the vehicle is assigned the given state
  400.      *
  401.      * @param string $state
  402.      *
  403.      * @return Vehicles
  404.      */
  405.     public function hasState($state)
  406.     {
  407.         //check if the state key exists and is equal to 1
  408.         return is_array($this->getState()) && array_key_exists($state$this->getState()) && $this->getState()[$state] == 1;
  409.     }
  410.     /**
  411.      * Set createdAt
  412.      *
  413.      * @param \DateTime $createdAt
  414.      *
  415.      * @return Vehicles
  416.      */
  417.     public function setCreatedAt($createdAt)
  418.     {
  419.         $this->createdAt $createdAt;
  420.         return $this;
  421.     }
  422.     /**
  423.      * Get createdAt
  424.      *
  425.      * @return \DateTime
  426.      */
  427.     public function getCreatedAt()
  428.     {
  429.         return $this->createdAt;
  430.     }
  431.     /**
  432.      * Set updatedAt
  433.      *
  434.      * @param \DateTime $updatedAt
  435.      *
  436.      * @return Vehicles
  437.      */
  438.     public function setUpdatedAt($updatedAt)
  439.     {
  440.         $this->updatedAt $updatedAt;
  441.         return $this;
  442.     }
  443.     /**
  444.      * Get updatedAt
  445.      *
  446.      * @return \DateTime
  447.      */
  448.     public function getUpdatedAt()
  449.     {
  450.         return $this->updatedAt;
  451.     }
  452.     /**
  453.      * Set situation
  454.      *
  455.      * @param string $situation
  456.      *
  457.      * @return Vehicles
  458.      */
  459.     public function setSituation($situation)
  460.     {
  461.         $this->situation $situation;
  462.         return $this;
  463.     }
  464.     /**
  465.      * Get situation
  466.      *
  467.      * @return string
  468.      */
  469.     public function getSituation()
  470.     {
  471.         return $this->situation;
  472.     }
  473.     /**
  474.      * Set offerabilityForSale
  475.      *
  476.      * @param integer $offerabilityForSale
  477.      *
  478.      * @return Vehicles
  479.      */
  480.     public function setOfferabilityForSale($offerabilityForSale)
  481.     {
  482.         $this->offerabilityForSale $offerabilityForSale;
  483.         return $this;
  484.     }
  485.     /**
  486.      * Get offerabilityForSale
  487.      *
  488.      * @return string
  489.      */
  490.     public function getOfferabilityForSale()
  491.     {
  492.         return $this->offerabilityForSale;
  493.     }
  494.     /**
  495.      * Set status
  496.      *
  497.      * @param string $status
  498.      *
  499.      * @return Vehicles
  500.      */
  501.     public function setStatus($status)
  502.     {
  503.         $this->status $status;
  504.         return $this;
  505.     }
  506.     /**
  507.      * Get status
  508.      *
  509.      * @return string
  510.      */
  511.     public function getStatus()
  512.     {
  513.         return $this->status;
  514.     }
  515.     /**
  516.      * Set isDeleted
  517.      *
  518.      * @param integer $isDeleted
  519.      *
  520.      * @return Vehicles
  521.      */
  522.     public function setIsDeleted($isDeleted)
  523.     {
  524.         $this->isDeleted $isDeleted;
  525.         return $this;
  526.     }
  527.     /**
  528.      * Get isDeleted
  529.      *
  530.      * @return integer
  531.      */
  532.     public function getIsDeleted()
  533.     {
  534.         return $this->isDeleted;
  535.     }
  536.     /**
  537.      * Set isApproved
  538.      *
  539.      * @param integer $isApproved
  540.      *
  541.      * @return Vehicles
  542.      */
  543.     public function setIsApproved($isApproved)
  544.     {
  545.         $this->isApproved $isApproved;
  546.         return $this;
  547.     }
  548.     /**
  549.      * Get isApproved
  550.      *
  551.      * @return integer
  552.      */
  553.     public function getIsApproved()
  554.     {
  555.         return $this->isApproved;
  556.     }
  557.     /**
  558.      * Set inspectionExpirationDate
  559.      *
  560.      * @param \DateTime $inspectionExpirationDate
  561.      *
  562.      * @return Vehicles
  563.      */
  564.     public function setInspectionExpirationDate($inspectionExpirationDate)
  565.     {
  566.         $this->inspectionExpirationDate $inspectionExpirationDate;
  567.         return $this;
  568.     }
  569.     /**
  570.      * Get inspectionExpirationDate
  571.      *
  572.      * @return \DateTime
  573.      */
  574.     public function getInspectionExpirationDate()
  575.     {
  576.         return $this->inspectionExpirationDate;
  577.     }
  578.     /**
  579.      * Set insuranceStartDate
  580.      *
  581.      * @param \DateTime $insuranceStartDate
  582.      *
  583.      * @return Vehicles
  584.      */
  585.     public function setInsuranceStartDate($insuranceStartDate)
  586.     {
  587.         $this->insuranceStartDate $insuranceStartDate;
  588.         return $this;
  589.     }
  590.     /**
  591.      * Get insuranceStartDate
  592.      *
  593.      * @return \DateTime
  594.      */
  595.     public function getInsuranceStartDate()
  596.     {
  597.         return $this->insuranceStartDate;
  598.     }
  599.     /**
  600.      * Set insuranceExpiryDate
  601.      *
  602.      * @param \DateTime $insuranceExpiryDate
  603.      *
  604.      * @return Vehicles
  605.      */
  606.     public function setInsuranceExpiryDate($insuranceExpiryDate)
  607.     {
  608.         $this->insuranceExpiryDate $insuranceExpiryDate;
  609.         return $this;
  610.     }
  611.     /**
  612.      * Get insuranceExpiryDate
  613.      *
  614.      * @return \DateTime
  615.      */
  616.     public function getInsuranceExpiryDate()
  617.     {
  618.         return $this->insuranceExpiryDate;
  619.     }
  620.     /**
  621.      * Set exitDate
  622.      *
  623.      * @param \DateTime $exitDate
  624.      *
  625.      * @return Vehicles
  626.      */
  627.     public function setExitDate($exitDate)
  628.     {
  629.         $this->exitDate $exitDate;
  630.         return $this;
  631.     }
  632.     /**
  633.      * Get exitDate
  634.      *
  635.      * @return \DateTime
  636.      */
  637.     public function getExitDate()
  638.     {
  639.         return $this->exitDate;
  640.     }
  641.     /**
  642.      * Set approvedBy
  643.      *
  644.      *
  645.      * @return Vehicles
  646.      */
  647.     public function setApprovedBy(Users $approvedBy null)
  648.     {
  649.         $this->approvedBy $approvedBy;
  650.         return $this;
  651.     }
  652.     /**
  653.      * Get approvedBy
  654.      *
  655.      * @return Users
  656.      */
  657.     public function getApprovedBy()
  658.     {
  659.         return $this->approvedBy;
  660.     }
  661.     /**
  662.      * Set createdBy
  663.      *
  664.      *
  665.      * @return Vehicles
  666.      */
  667.     public function setCreatedBy(Users $createdBy null)
  668.     {
  669.         $this->createdBy $createdBy;
  670.         return $this;
  671.     }
  672.     /**
  673.      * Get createdBy
  674.      *
  675.      * @return \App\Entity\Users
  676.      */
  677.     public function getCreatedBy()
  678.     {
  679.         return $this->createdBy;
  680.     }
  681.     /**
  682.      * Set parentVehicle
  683.      *
  684.      *
  685.      * @return Vehicles
  686.      */
  687.     public function setParentVehicle(Vehicles $parentVehicle null)
  688.     {
  689.         $this->parentVehicle $parentVehicle;
  690.         return $this;
  691.     }
  692.     /**
  693.      * Get parentVehicle
  694.      *
  695.      * @return \App\Entity\Vehicles
  696.      */
  697.     public function getParentVehicle()
  698.     {
  699.         return $this->parentVehicle;
  700.     }
  701.     /**
  702.      * Set updatedBy
  703.      *
  704.      *
  705.      * @return Vehicles
  706.      */
  707.     public function setUpdatedBy(Users $updatedBy null)
  708.     {
  709.         $this->updatedBy $updatedBy;
  710.         return $this;
  711.     }
  712.     /**
  713.      * Get updatedBy
  714.      *
  715.      * @return \App\Entity\Users
  716.      */
  717.     public function getUpdatedBy()
  718.     {
  719.         return $this->updatedBy;
  720.     }
  721.     /**
  722.      * Constructor
  723.      */
  724.     public function __construct()
  725.     {
  726.         $this->inventoryMissingParts = new ArrayCollection();
  727. //        $this->vehicleDocument = new \Doctrine\Common\Collections\ArrayCollection();
  728.     }
  729.     /**
  730.      * Add inventoryMissingPart
  731.      *
  732.      *
  733.      * @return Vehicles
  734.      */
  735.     public function addInventoryMissingPart(VehicleInventoryMissingParts $inventoryMissingPart)
  736.     {
  737.         $this->inventoryMissingParts[] = $inventoryMissingPart;
  738.         return $this;
  739.     }
  740.     /**
  741.      * Remove inventoryMissingPart
  742.      */
  743.     public function removeInventoryMissingPart(VehicleInventoryMissingParts $inventoryMissingPart)
  744.     {
  745.         $this->inventoryMissingParts->removeElement($inventoryMissingPart);
  746.     }
  747.     /**
  748.      * Get inventoryMissingParts
  749.      *
  750.      * @return \Doctrine\Common\Collections\Collection
  751.      */
  752.     public function getInventoryMissingParts()
  753.     {
  754.         return $this->inventoryMissingParts;
  755.     }
  756.     /**
  757.      * Get VehicleRegistrations
  758.      *
  759.      * @return \App\Entity\VehicleRegistrations
  760.      */
  761.     public function getVehicleRegistrations()
  762.     {
  763.         return $this->vehicleRegistrations;
  764.     }
  765.     /**
  766.      * Set vehicleRegistrations
  767.      *
  768.      *
  769.      * @return Vehicles
  770.      */
  771.     public function setVehicleRegistrations(VehicleRegistrations $vehicleRegistrations null)
  772.     {
  773.         $this->vehicleRegistrations $vehicleRegistrations;
  774.         return $this;
  775.     }
  776.     /**
  777.      * Get VehicleTechnicalSpecs
  778.      *
  779.      * @return \App\Entity\VehicleTechnicalSpecs
  780.      */
  781.     public function getVehicleTechnicalSpecs()
  782.     {
  783.         return $this->vehicleTechnicalSpecs;
  784.     }
  785.     /**
  786.      * Set vehicleTechnicalSpecs
  787.      *
  788.      *
  789.      * @return Vehicles
  790.      */
  791.     public function setVehicleTechnicalSpecs(VehicleTechnicalSpecs $vehicleTechnicalSpecs null)
  792.     {
  793.         $this->vehicleTechnicalSpecs $vehicleTechnicalSpecs;
  794.         return $this;
  795.     }
  796.     /**
  797.      * Get vehicleBeneficiaryDetails
  798.      *
  799.      * @return \App\Entity\VehicleBeneficiaryDetails
  800.      */
  801.     public function getVehicleBeneficiaryDetails()
  802.     {
  803.         return $this->vehicleBeneficiaryDetails;
  804.     }
  805.     /**
  806.      * Set vehicleBeneficiaryDetails
  807.      *
  808.      *
  809.      * @return Vehicles
  810.      */
  811.     public function setVehicleBeneficiaryDetails(VehicleBeneficiaryDetails $vehicleBeneficiaryDetails null)
  812.     {
  813.         $this->vehicleBeneficiaryDetails $vehicleBeneficiaryDetails;
  814.         return $this;
  815.     }
  816.     /**
  817.      * Get vehicleRevokeRequests
  818.      *
  819.      * @return \App\Entity\VehicleRevokeRequests
  820.      */
  821.     public function getVehicleRevokeRequest()
  822.     {
  823.         return $this->vehicleRevokeRequest;
  824.     }
  825.     /**
  826.      * Add otherMissingPart
  827.      *
  828.      *
  829.      * @return Vehicles
  830.      */
  831.     public function addOtherMissingPart(VehicleOtherMissingParts $otherMissingPart)
  832.     {
  833.         $this->otherMissingParts[] = $otherMissingPart;
  834.         return $this;
  835.     }
  836.     /**
  837.      * Remove otherMissingPart
  838.      */
  839.     public function removeOtherMissingPart(VehicleOtherMissingParts $otherMissingPart)
  840.     {
  841.         $this->otherMissingParts->removeElement($otherMissingPart);
  842.     }
  843.     /**
  844.      * Get otherMissingParts
  845.      *
  846.      * @return \Doctrine\Common\Collections\Collection
  847.      */
  848.     public function getOtherMissingParts()
  849.     {
  850.         return $this->otherMissingParts;
  851.     }
  852.     /**
  853.      * Add inventoryImage
  854.      *
  855.      *
  856.      * @return Vehicles
  857.      */
  858.     public function addInventoryImage(VehicleInventoryImages $inventoryImage)
  859.     {
  860.         $this->inventoryImages[] = $inventoryImage;
  861.         return $this;
  862.     }
  863.     /**
  864.      * Remove inventoryImage
  865.      */
  866.     public function removeInventoryImage(VehicleInventoryImages $inventoryImage)
  867.     {
  868.         $this->inventoryImages->removeElement($inventoryImage);
  869.     }
  870.     /**
  871.      * Get inventoryImages
  872.      *
  873.      * @return \Doctrine\Common\Collections\Collection
  874.      */
  875.     public function getInventoryImages()
  876.     {
  877.         return $this->inventoryImages;
  878.     }
  879.     /**
  880.      * Add vehicleRevokeRequest
  881.      *
  882.      *
  883.      * @return Vehicles
  884.      */
  885.     public function addVehicleRevokeRequest(VehicleRevokeRequests $vehicleRevokeRequest)
  886.     {
  887.         $this->vehicleRevokeRequest[] = $vehicleRevokeRequest;
  888.         return $this;
  889.     }
  890.     /**
  891.      * Remove vehicleRevokeRequest
  892.      */
  893.     public function removeVehicleRevokeRequest(VehicleRevokeRequests $vehicleRevokeRequest)
  894.     {
  895.         $this->vehicleRevokeRequest->removeElement($vehicleRevokeRequest);
  896.     }
  897.     /**
  898.      * Get vehicleDocs
  899.      *
  900.      * @return \Doctrine\Common\Collections\Collection
  901.      */
  902.     public function getVehicleDocument()
  903.     {
  904.         return $this->vehicleDocument;
  905.     }
  906.     /**
  907.      * Add VehicleDocs
  908.      *
  909.      *
  910.      * @return Vehicles
  911.      */
  912.     public function addVehicleDocument(VehicleDocs $vehicleDoc)
  913.     {
  914.         $vehicleDoc->setVehicle($this);
  915. //        $this->vehicleDocument[] = $vehicleDoc;
  916.         $this->vehicleDocument->add($vehicleDoc);
  917.         return $this;
  918.     }
  919.     /**
  920.      * Remove VehicleDocs
  921.      */
  922.     public function removeVehicleDocument(VehicleDocs $vehicleDoc)
  923.     {
  924.         $this->vehicleDocument->removeElement($vehicleDoc);
  925.     }
  926.     /**
  927.      * Set activityEstimateVal
  928.      *
  929.      *
  930.      * @return VehicleRtsActivitiesInvoices
  931.      */
  932.     public function addActivityEstimateVal(VehicleRtsActivitiesEstimateVal $activityEstimateVal null)
  933.     {
  934.         $activityEstimateVal->setRtsInvoice($this);
  935.         $this->activityEstimateVal->add($activityEstimateVal);
  936.         return $this;
  937.     }
  938.     /**
  939.      * Remove  activityEstimateVal
  940.      */
  941.     public function removeActivityEstimateVal(VehicleRtsActivitiesEstimateVal $activityEstimateVal)
  942.     {
  943.         $this->activityEstimateVal->removeElement($activityEstimateVal);
  944.     }
  945.     /**
  946.      * Get  activityEstimateVal
  947.      *
  948.      * @return \App\Entity\VehicleRtsActivitiesEstimateVal
  949.      */
  950.     public function getActivityEstimateVal()
  951.     {
  952.         return $this->activityEstimateVal;
  953.     }
  954.     /**
  955.      * Get vehicleSales
  956.      *
  957.      * @return \App\Entity\VehicleSales
  958.      */
  959.     public function getVehicleSales()
  960.     {
  961.         return $this->vehicleSales;
  962.     }
  963.     /**
  964.      * Add vehicleSales
  965.      *
  966.      *
  967.      * @return Vehicles
  968.      */
  969.     public function addVehicleSales(VehicleSales $vehicleSales)
  970.     {
  971.         $this->vehicleSales[] = $vehicleSales;
  972.         return $this;
  973.     }
  974.     /**
  975.      * Set receivingAt
  976.      *
  977.      * @param \DateTime $receivingAt
  978.      *
  979.      * @return Vehicles
  980.      */
  981.     public function setReceivingAt($receivingAt)
  982.     {
  983.         $this->receivingAt $receivingAt;
  984.         return $this;
  985.     }
  986.     /**
  987.      * Get receivingAt
  988.      *
  989.      * @return \DateTime
  990.      */
  991.     public function getReceivingAt()
  992.     {
  993.         return $this->receivingAt;
  994.     }
  995.     /**
  996.      * Remove vehicleSales
  997.      */
  998.     public function removeVehicleSales(VehicleSales $vehicleSales)
  999.     {
  1000.         $this->vehicleSales->removeElement($vehicleSales);
  1001.     }
  1002.     /**
  1003.      * Tasks to do before insertion
  1004.      */
  1005.     #[PrePersist]
  1006.     public function prePersist() {
  1007.         if ($this->getCreatedAt() == null) {
  1008.             $this->setCreatedAt(new \DateTime(date('Y-m-d H:i:s')));
  1009.         }
  1010.     }
  1011. }