Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / tests / Doctrine / Tests / Models / Company / CompanyFlexContract.php
1 <?php
2 namespace Doctrine\Tests\Models\Company;
3
4 /**
5  * @Entity
6  *
7  * @NamedNativeQueries({
8  *      @NamedNativeQuery(
9  *          name           = "all",
10  *          resultClass    = "__CLASS__",
11  *          query          = "SELECT id, hoursWorked, discr FROM company_contracts"
12  *      ),
13  *      @NamedNativeQuery(
14  *          name           = "all-flex",
15  *          resultClass    = "CompanyFlexContract",
16  *          query          = "SELECT id, hoursWorked, discr FROM company_contracts"
17  *      ),
18  * })
19  *
20  * @SqlResultSetMappings({
21  *      @SqlResultSetMapping(
22  *          name    = "mapping-all-flex",
23  *          entities= {
24  *              @EntityResult(
25  *                  entityClass         = "__CLASS__",
26  *                  discriminatorColumn = "discr",
27  *                  fields              = {
28  *                      @FieldResult("id"),
29  *                      @FieldResult("hoursWorked"),
30  *                  }
31  *              )
32  *          }
33  *      ),
34  *      @SqlResultSetMapping(
35  *          name    = "mapping-all",
36  *          entities= {
37  *              @EntityResult(
38  *                  entityClass         = "CompanyFlexContract",
39  *                  discriminatorColumn = "discr",
40  *                  fields              = {
41  *                      @FieldResult("id"),
42  *                      @FieldResult("hoursWorked"),
43  *                  }
44  *              )
45  *          }
46  *      ),
47  * })
48  */
49 class CompanyFlexContract extends CompanyContract
50 {
51     /**
52      * @column(type="integer")
53      * @var int
54      */
55     private $hoursWorked = 0;
56
57     /**
58      * @column(type="integer")
59      * @var int
60      */
61     private $pricePerHour = 0;
62
63     /**
64      * @ManyToMany(targetEntity="CompanyManager", inversedBy="managedContracts", fetch="EXTRA_LAZY")
65      * @JoinTable(name="company_contract_managers",
66      *    joinColumns={@JoinColumn(name="contract_id", referencedColumnName="id", onDelete="CASCADE")},
67      *    inverseJoinColumns={@JoinColumn(name="employee_id", referencedColumnName="id")}
68      * )
69      */
70     public $managers;
71
72     public function calculatePrice()
73     {
74         return $this->hoursWorked * $this->pricePerHour;
75     }
76
77     public function getHoursWorked()
78     {
79         return $this->hoursWorked;
80     }
81
82     public function setHoursWorked($hoursWorked)
83     {
84         $this->hoursWorked = $hoursWorked;
85     }
86
87     public function getPricePerHour()
88     {
89         return $this->pricePerHour;
90     }
91
92     public function setPricePerHour($pricePerHour)
93     {
94         $this->pricePerHour = $pricePerHour;
95     }
96     public function getManagers()
97     {
98         return $this->managers;
99     }
100
101     public function addManager(CompanyManager $manager)
102     {
103         $this->managers[] = $manager;
104     }
105
106     public function removeManager(CompanyManager $manager)
107     {
108         $this->managers->removeElement($manager);
109     }
110 }