Professional Documents
Culture Documents
Membuat database
SCRIPT :
a. userController :
public function accessRules()
{
return array(
array('allow',
'expression' => 'Yii::app()->user->level=="admin"',
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
b. supplierController :
public function accessRules()
{
return array(
array('allow', // allow authenticated user to perform 'create' and
'update' actions
'actions'=>array('create','update', 'view', 'index'),
'expression' => 'Yii::app()->user->level == "staf"'
),
array('allow',
'expression' => 'Yii::app()->user->level == "admin"'
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
c. penjualanController :
public function accessRules()
{
return array(
array('allow',
'expression' => 'Yii::app()->user->level == "admin" ||
Yii::app()->user->level == "penjualan"'
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
d. barangController :
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view'
actions
'actions'=>array('index','view', 'create'),
'expression' => 'Yii::app()->user->level=="penjualan"'
),
array('allow',
'expression' => 'Yii::app()->user->level == "admin" ||
Yii::app()->user->level == "staf"'
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
6. dropdown create user, penjualan, barang (sama):
views/user/_form.php
<?php echo $form->dropDownList($model,'level', CHtml::listData(User::model()>findAll(), 'level', 'username'), array(
'empty' => '=== Level ==='
)); ?>
7. (BARANG & PENJUALAN SAMA) menampilkan nama suplier di index, view,
admin :
index : barang/_view.php
<?php echo CHtml::encode($data->idSupplier->nama); ?>
view : barang/view.php
array(
'name' => 'id_supplier',
'value' => $model->idSupplier->nama
),
Admin : barang/admin.php
array(
'name' => 'id_supplier',
'value' => function($data) {
return $data->idSupplier->nama;
}),
8. Model Penjualan :
//tanggal Otomatis
protected function beforeValidate()
{
if($this->isNewRecord) {
$this->tanggal = date('Y-m-d');
}
return parent::beforeValidate();
}
//mengurangi stock barang otomatis
protected function afterSave()
{
if($this->isNewRecord) {
$this->idBarang->stok -= $this->quantity;
$this->idBarang->save();
}
parent::afterSave();
}
//delete otomatis
protected function afterDelete()
{
if($this->isNewRecord) {
$this->idBarang->stok += $this->quantity;
$this->idBarang->save();
}
parent::afterDelete();
}
9. Menghilangkan penjualan ketika barang di hapus, model barang
protected function afterDelete()
{
Penjualan::model()->deleteAll('id_barang = ' . $this->id);
parent::afterDelete();
}
10.
Menghilangkan barang ketika supplier di hapus, model supplier
protected function afterDelete()
{
$list_barang = Barang::model()->findAll('id_supplier = ' . $this->id);
foreach ($list_barang as $barang) {
$barang->delete();
Penjualan::model()->deleteAll('id_barang = ' . $barang->id);
}
parent::afterDelete();
}