Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / orm / tests / Doctrine / Tests / Models / Company / CompanyContract.php
diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/Models/Company/CompanyContract.php b/vendor/doctrine/orm/tests/Doctrine/Tests/Models/Company/CompanyContract.php
new file mode 100644 (file)
index 0000000..bc8503d
--- /dev/null
@@ -0,0 +1,131 @@
+<?php
+
+namespace Doctrine\Tests\Models\Company;
+
+/**
+ * @Entity
+ * @Table(name="company_contracts")
+ * @InheritanceType("SINGLE_TABLE")
+ * @DiscriminatorColumn(name="discr", type="string")
+ * @DiscriminatorMap({
+ *     "fix"       = "CompanyFixContract",
+ *     "flexible"  = "CompanyFlexContract",
+ *     "flexultra" = "CompanyFlexUltraContract"
+ * })
+ *
+ * @NamedNativeQueries({
+ *      @NamedNativeQuery(
+ *          name           = "all-contracts",
+ *          resultClass    = "__CLASS__",
+ *          query          = "SELECT id, completed, discr FROM company_contracts"
+ *      ),
+ *      @NamedNativeQuery(
+ *          name           = "all",
+ *          resultClass    = "__CLASS__",
+ *          query          = "SELECT id, completed, discr FROM company_contracts"
+ *      ),
+ * })
+ *
+ * @SqlResultSetMappings({
+ *      @SqlResultSetMapping(
+ *          name    = "mapping-all-contracts",
+ *          entities= {
+ *              @EntityResult(
+ *                  entityClass         = "__CLASS__",
+ *                  discriminatorColumn = "discr",
+ *                  fields              = {
+ *                      @FieldResult("id"),
+ *                      @FieldResult("completed"),
+ *                  }
+ *              )
+ *          }
+ *      ),
+ *      @SqlResultSetMapping(
+ *          name    = "mapping-all",
+ *          entities= {
+ *              @EntityResult(
+ *                  entityClass         = "__CLASS__",
+ *                  discriminatorColumn = "discr",
+ *                  fields              = {
+ *                      @FieldResult("id"),
+ *                      @FieldResult("completed"),
+ *                  }
+ *              )
+ *          }
+ *      ),
+ * })
+ */
+abstract class CompanyContract
+{
+    /**
+     * @Id @column(type="integer") @GeneratedValue
+     */
+    private $id;
+
+    /**
+     * @ManyToOne(targetEntity="CompanyEmployee", inversedBy="soldContracts")
+     */
+    private $salesPerson;
+
+    /**
+     * @Column(type="boolean")
+     * @var bool
+     */
+    private $completed = false;
+
+    /**
+     * @ManyToMany(targetEntity="CompanyEmployee", inversedBy="contracts")
+     * @JoinTable(name="company_contract_employees",
+     *    joinColumns={@JoinColumn(name="contract_id", referencedColumnName="id", onDelete="CASCADE")},
+     *    inverseJoinColumns={@JoinColumn(name="employee_id", referencedColumnName="id")}
+     * )
+     */
+    private $engineers;
+
+    public function __construct()
+    {
+        $this->engineers = new \Doctrine\Common\Collections\ArrayCollection;
+    }
+
+    public function getId()
+    {
+        return $this->id;
+    }
+
+    public function markCompleted()
+    {
+        $this->completed = true;
+    }
+
+    public function isCompleted()
+    {
+        return $this->completed;
+    }
+
+    public function getSalesPerson()
+    {
+        return $this->salesPerson;
+    }
+
+    public function setSalesPerson(CompanyEmployee $salesPerson)
+    {
+        $this->salesPerson = $salesPerson;
+    }
+
+    public function getEngineers()
+    {
+        return $this->engineers;
+    }
+
+    public function addEngineer(CompanyEmployee $engineer)
+    {
+        $this->engineers[] = $engineer;
+    }
+
+    public function removeEngineer(CompanyEmployee $engineer)
+    {
+        $this->engineers->removeElement($engineer);
+    }
+
+    abstract public function calculatePrice();
+}