MetadataProgram.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <?php
  2. namespace App\Model;
  3. use Illuminate\Database\Eloquent\Model;
  4. use Illuminate\Database\Eloquent\SoftDeletes;
  5. use App\Model\TahunProgramDetailUpt;
  6. use Auth;
  7. class MetadataProgram extends Model
  8. {
  9. use SoftDeletes;
  10. protected $table = 'metadata_program';
  11. protected $fillable = [
  12. 'id',
  13. 'id_tb_tahun_program_detail',
  14. 'periode',
  15. 'id_upt',
  16. 'float1',
  17. 'float2',
  18. 'float3',
  19. 'float4',
  20. 'float5',
  21. 'float6',
  22. 'float7',
  23. 'float8',
  24. 'float9',
  25. 'float10',
  26. 'varchar1',
  27. 'varchar2',
  28. 'varchar3',
  29. 'varchar4',
  30. 'varchar5',
  31. 'varchar6',
  32. 'varchar7',
  33. 'varchar8',
  34. 'varchar9',
  35. 'varchar10',
  36. 'varchar11',
  37. 'varchar12',
  38. 'varchar13',
  39. 'varchar14',
  40. 'varchar15',
  41. 'varchar16',
  42. 'varchar17',
  43. 'varchar18',
  44. 'varchar19',
  45. 'varchar20',
  46. 'date1',
  47. 'date2',
  48. 'date3',
  49. 'date4',
  50. 'date5',
  51. 'date6',
  52. 'date7',
  53. 'date8',
  54. 'date9',
  55. 'date10',
  56. 'created_by',
  57. 'updated_by'
  58. ];
  59. public function templateProgram(){
  60. return $this->belongsTo('App\Model\TemplateProgram', 'id_template_program');
  61. }
  62. public function tbTahunProgramDetail(){
  63. return $this->belongsTo('App\Model\TahunProgramDetail', 'id_tb_tahun_program_detail');
  64. }
  65. public function upt(){
  66. return $this->hasMany('App\Model\UPTSModel','office_id','id_upt');
  67. }
  68. public function getPeriodeAttribute(){
  69. $periode = 1;
  70. $jml = MetadataProgram::where('id_tb_tahun_program_detail',$this->id_tb_tahun_program_detail)
  71. ->where('id_upt',$this->id_upt)
  72. ->orderBy('id','asc')
  73. ->pluck('id');
  74. return (array_search($this->id, $jml->toArray()))+1;
  75. }
  76. public function getTargetPeriodeAttribute(){
  77. $target = 0;
  78. $periode = $this->getPeriodeAttribute();
  79. if(!empty($periode)){
  80. $tahunProgramDetailUpt = TahunProgramDetailUpt::where('id_tahun_program_detail',$this->id_tb_tahun_program_detail)->where('id_upt',$this->id_upt)->where('periode',$periode)->first();
  81. $target = !empty($tahunProgramDetailUpt)?$tahunProgramDetailUpt->target.' '.$tahunProgramDetailUpt->satuan:0;
  82. }
  83. return $target;
  84. }
  85. }