diff --git a/src/Controller/JobOrderController.php b/src/Controller/JobOrderController.php index c3f56caa..07f1f26d 100644 --- a/src/Controller/JobOrderController.php +++ b/src/Controller/JobOrderController.php @@ -518,6 +518,8 @@ class JobOrderController extends BaseController ->setDeliveryInstructions($req->request->get('delivery_instructions')) ->setAgentNotes($req->request->get('agent_notes')) ->setDeliveryAddress($req->request->get('delivery_address')) + ->setAssignedBy($this->getUser()) + ->setDateAssign(new DateTime()) ->setRider($rider); // validate diff --git a/src/Entity/JobOrder.php b/src/Entity/JobOrder.php index 65b0b246..5809dc85 100644 --- a/src/Entity/JobOrder.php +++ b/src/Entity/JobOrder.php @@ -48,6 +48,12 @@ class JobOrder */ protected $date_cancel; + // date job order was assigned to a rider + /** + * @ORM\Column(type="datetime", nullable=true) + */ + protected $date_assign; + // coordinates of the customer vehicle that needs service /** * @ORM\Column(type="point") @@ -62,11 +68,18 @@ class JobOrder // user that created the job order /** - * @ORM\ManyToOne(targetEntity="User", inversedBy="job_orders") - * @ORM\JoinColumn(name="user_id", referencedColumnName="id") + * @ORM\ManyToOne(targetEntity="User", inversedBy="job_orders_created") + * @ORM\JoinColumn(name="create_user_id", referencedColumnName="id") */ protected $created_by; + // user that assigned the job order to a rider + /** + * @ORM\ManyToOne(targetEntity="User", inversedBy="job_orders_assigned") + * @ORM\JoinColumn(name="assign_user_id", referencedColumnName="id", nullable=true) + */ + protected $assigned_by; + // service type /** * @ORM\Column(type="string", length=25) @@ -180,6 +193,17 @@ class JobOrder return $this->date_fulfill; } + public function setDateAssign($date_assign) + { + $this->date_assign = $date_assign; + return $this; + } + + public function getDateAssign() + { + return $this->date_assign; + } + public function setCoordinates(Point $point) { $this->coordinates = $point; @@ -213,6 +237,17 @@ class JobOrder return $this->created_by; } + public function setAssignedBy(User $assigned_by) + { + $this->assigned_by = $assigned_by; + return $this; + } + + public function getAssignedBy() + { + return $this->assigned_by; + } + public function setServiceType($service_type) { $this->service_type = $service_type; diff --git a/src/Entity/User.php b/src/Entity/User.php index f8f03e7c..1cfeabf6 100644 --- a/src/Entity/User.php +++ b/src/Entity/User.php @@ -71,12 +71,19 @@ class User implements AdvancedUserInterface, Serializable /** * @ORM\OneToMany(targetEntity="JobOrder", mappedBy="created_by") */ - protected $job_orders; + protected $job_orders_created; + + // job orders assigned by this user + /** + * @ORM\OneToMany(targetEntity="JobOrder", mappedBy="assigned_by") + */ + protected $job_orders_assigned; public function __construct() { $this->roles = new ArrayCollection(); - $this->job_orders = new ArrayCollection(); + $this->job_orders_created = new ArrayCollection(); + $this->job_orders_assigned = new ArrayCollection(); $this->enabled = true; } @@ -250,4 +257,14 @@ class User implements AdvancedUserInterface, Serializable return false; } + + public function getJobOrdersCreated() + { + return $this->job_orders_created; + } + + public function getJobOrdersAssigned() + { + return $this->job_orders_assigned; + } }