Rajout de doctrine/orm
[zf2.biz/application_blanche.git] / vendor / doctrine / orm / tests / Doctrine / Tests / Models / Company / CompanyFlexContract.php
diff --git a/vendor/doctrine/orm/tests/Doctrine/Tests/Models/Company/CompanyFlexContract.php b/vendor/doctrine/orm/tests/Doctrine/Tests/Models/Company/CompanyFlexContract.php
new file mode 100644 (file)
index 0000000..121d8ec
--- /dev/null
@@ -0,0 +1,110 @@
+<?php
+namespace Doctrine\Tests\Models\Company;
+
+/**
+ * @Entity
+ *
+ * @NamedNativeQueries({
+ *      @NamedNativeQuery(
+ *          name           = "all",
+ *          resultClass    = "__CLASS__",
+ *          query          = "SELECT id, hoursWorked, discr FROM company_contracts"
+ *      ),
+ *      @NamedNativeQuery(
+ *          name           = "all-flex",
+ *          resultClass    = "CompanyFlexContract",
+ *          query          = "SELECT id, hoursWorked, discr FROM company_contracts"
+ *      ),
+ * })
+ *
+ * @SqlResultSetMappings({
+ *      @SqlResultSetMapping(
+ *          name    = "mapping-all-flex",
+ *          entities= {
+ *              @EntityResult(
+ *                  entityClass         = "__CLASS__",
+ *                  discriminatorColumn = "discr",
+ *                  fields              = {
+ *                      @FieldResult("id"),
+ *                      @FieldResult("hoursWorked"),
+ *                  }
+ *              )
+ *          }
+ *      ),
+ *      @SqlResultSetMapping(
+ *          name    = "mapping-all",
+ *          entities= {
+ *              @EntityResult(
+ *                  entityClass         = "CompanyFlexContract",
+ *                  discriminatorColumn = "discr",
+ *                  fields              = {
+ *                      @FieldResult("id"),
+ *                      @FieldResult("hoursWorked"),
+ *                  }
+ *              )
+ *          }
+ *      ),
+ * })
+ */
+class CompanyFlexContract extends CompanyContract
+{
+    /**
+     * @column(type="integer")
+     * @var int
+     */
+    private $hoursWorked = 0;
+
+    /**
+     * @column(type="integer")
+     * @var int
+     */
+    private $pricePerHour = 0;
+
+    /**
+     * @ManyToMany(targetEntity="CompanyManager", inversedBy="managedContracts", fetch="EXTRA_LAZY")
+     * @JoinTable(name="company_contract_managers",
+     *    joinColumns={@JoinColumn(name="contract_id", referencedColumnName="id", onDelete="CASCADE")},
+     *    inverseJoinColumns={@JoinColumn(name="employee_id", referencedColumnName="id")}
+     * )
+     */
+    public $managers;
+
+    public function calculatePrice()
+    {
+        return $this->hoursWorked * $this->pricePerHour;
+    }
+
+    public function getHoursWorked()
+    {
+        return $this->hoursWorked;
+    }
+
+    public function setHoursWorked($hoursWorked)
+    {
+        $this->hoursWorked = $hoursWorked;
+    }
+
+    public function getPricePerHour()
+    {
+        return $this->pricePerHour;
+    }
+
+    public function setPricePerHour($pricePerHour)
+    {
+        $this->pricePerHour = $pricePerHour;
+    }
+    public function getManagers()
+    {
+        return $this->managers;
+    }
+
+    public function addManager(CompanyManager $manager)
+    {
+        $this->managers[] = $manager;
+    }
+
+    public function removeManager(CompanyManager $manager)
+    {
+        $this->managers->removeElement($manager);
+    }
+}