Obra.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace v1\models;
  3. use app\models\Obra as ModeloObra;
  4. class Obra extends ModeloObra {
  5. public function fields() {
  6. return [
  7. 'id',
  8. 'clave',
  9. 'nombre',
  10. 'fechaInicio',
  11. 'fechaFinal',
  12. 'descripcion',
  13. 'creado',
  14. 'modificado',
  15. ];
  16. }
  17. public function extraFields() {
  18. return [
  19. 'empleados',
  20. 'herramientas',
  21. ];
  22. }
  23. public function getHerramientaObras()
  24. {
  25. return $this->hasMany(HerramientaObra::class, ['idObra' => 'id']);
  26. }
  27. public function getEmpleados()
  28. {
  29. return $this->hasMany(Empleado::class, ['id' => 'idEmpleado'])->viaTable("ObraEmpleado",['idObra'=>'id']) ;
  30. }
  31. public function getHerramientas()
  32. {$q=(new \yii\db\Query())
  33. ->select(['{{ObraHerramienta}}.[[idObra]]','{{Herramienta}}.[[id]]', '{{Herramienta}}.[[nombre]]','{{ObraHerramienta}}.[[cantidad]]'])
  34. ->from('Herramienta')
  35. ->leftJoin('ObraHerramienta', '{{ObraHerramienta}}.[[idHerramienta]]={{Herramienta}}.[[id]]')
  36. ->andWhere(['{{ObraHerramienta}}.[[idObra]]' => $this->id])
  37. ->all();
  38. return $q;
  39. }
  40. }