3 namespace Doctrine\Tests\Models\Company;
7 * @Table(name="company_contracts")
8 * @InheritanceType("SINGLE_TABLE")
9 * @DiscriminatorColumn(name="discr", type="string")
11 * "fix" = "CompanyFixContract",
12 * "flexible" = "CompanyFlexContract",
13 * "flexultra" = "CompanyFlexUltraContract"
16 * @NamedNativeQueries({
18 * name = "all-contracts",
19 * resultClass = "__CLASS__",
20 * query = "SELECT id, completed, discr FROM company_contracts"
24 * resultClass = "__CLASS__",
25 * query = "SELECT id, completed, discr FROM company_contracts"
29 * @SqlResultSetMappings({
30 * @SqlResultSetMapping(
31 * name = "mapping-all-contracts",
34 * entityClass = "__CLASS__",
35 * discriminatorColumn = "discr",
38 * @FieldResult("completed"),
43 * @SqlResultSetMapping(
44 * name = "mapping-all",
47 * entityClass = "__CLASS__",
48 * discriminatorColumn = "discr",
51 * @FieldResult("completed"),
58 abstract class CompanyContract
61 * @Id @column(type="integer") @GeneratedValue
66 * @ManyToOne(targetEntity="CompanyEmployee", inversedBy="soldContracts")
71 * @Column(type="boolean")
74 private $completed = false;
77 * @ManyToMany(targetEntity="CompanyEmployee", inversedBy="contracts")
78 * @JoinTable(name="company_contract_employees",
79 * joinColumns={@JoinColumn(name="contract_id", referencedColumnName="id", onDelete="CASCADE")},
80 * inverseJoinColumns={@JoinColumn(name="employee_id", referencedColumnName="id")}
85 public function __construct()
87 $this->engineers = new \Doctrine\Common\Collections\ArrayCollection;
90 public function getId()
95 public function markCompleted()
97 $this->completed = true;
100 public function isCompleted()
102 return $this->completed;
105 public function getSalesPerson()
107 return $this->salesPerson;
110 public function setSalesPerson(CompanyEmployee $salesPerson)
112 $this->salesPerson = $salesPerson;
115 public function getEngineers()
117 return $this->engineers;
120 public function addEngineer(CompanyEmployee $engineer)
122 $this->engineers[] = $engineer;
125 public function removeEngineer(CompanyEmployee $engineer)
127 $this->engineers->removeElement($engineer);
130 abstract public function calculatePrice();