(oleh : Badiyanto)
Pada bagian ini akan mengajak Anda untuk membuat informasi/laporan dalam bentuk tabel serta isi dari kolom akan menampilkan hasil perhitungan. Perhitungan akan dilakukan oleh fungsi yang ditempatkan dalam model.
1. Buat tabelnya
CREATE TABLE `gaji` (
`nip` CHAR(5) NOT NULL,
`nama` CHAR(20) DEFAULT NULL,
`gaji_pokok` DECIMAL(10,2) DEFAULT NULL,
`tunjangan` DECIMAL(10,2) DEFAULT NULL,
PRIMARY KEY (`nip`)
) ENGINE=INNODB ;
INSERT INTO `gaji`(nip,nama,gaji_pokok,tunjangan)
VALUES ('1111','Edi','2000000.00','1200000.00'),
('1112','Udin','2050000.00','200000.00'),
('1113','ana','3000000.00','300000.00');
2. Buatlah model dan CRUD lewat gii genearator
3. Tambahkan Beberapa Funngsui berikut ke Dalam model Gaji.php
public function totalGaji()
{
$total=$this->gaji_pokok + $this->tunjangan;
return $total;
}
menghitung total gaji dengan menjumlahkan isi field tunjangan + gaji_pokok
public function pajak()
{
$total=$this->gaji_pokok + $this->tunjangan;
$pajak=$total * 5/100;
return $pajak;
}
atau Anda bisa dengan cara $pajak=totalGaji()*5/100;
menghiytung potongan pajak misal 5%
public function gajiBersih()
{
return $this->totalGaji() - $this->pajak();
}
menghitung gaji bersih dengan mengurangi fungsi $this->totalGaji() - $this->pajak()
4. Tambahkan/ubah begian view admin.php
<h1>Tabel Gaji</h1>
</div><!-- search-form -->
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id'=>'gaji-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'nip',
'nama',
array(
'name'=>'nip',
'type'=>'raw',
'header'=>'Gaji Pokok',
'value'=>'CHtml::encode(number_format($data->gaji_pokok,2))',
'htmlOptions'=>array('width'=>'','style'=>'text-align:right'),
),
array(
'name'=>'nip',
'type'=>'raw',
'header'=>'Tunjangan',
'value'=>'CHtml::encode(number_format($data->tunjangan,2))',
'htmlOptions'=>array('width'=>'','style'=>'text-align:right'),
),
array(
'name'=>'nip',
'type'=>'raw',
'header'=>'Jumlah Gaji',
'value'=>'CHtml::encode(number_format($data->totalGaji(),2))',
'htmlOptions'=>array('width'=>'','style'=>'text-align:right'),
),
array(
'name'=>'nip',
'type'=>'raw',
'header'=>'Pajak',
'value'=>'CHtml::encode(number_format($data->pajak(),2))',
'htmlOptions'=>array('width'=>'','style'=>'text-align:right'),
),
array(
'name'=>'nip',
'type'=>'raw',
'header'=>'gaji Bersih',
'value'=>'CHtml::encode(number_format($data->gajiBersih(),2))',
'htmlOptions'=>array('width'=>'','style'=>'text-align:right'),
),
array(
'class'=>'CButtonColumn',
),
),
)); ?>
penjelasan perintah'value'=>'CHtml::encode(number_format($data->gajiBersih(),2))', memanggilfungsi gajiBersih()
Lihat hasilnya