Untitled
unknown
plain_text
3 years ago
3.7 kB
9
Indexable
<?php
use App\Model\User;
use App\Model\Perfil;
use App\Model\ControlItem;
use Illuminate\Database\Seeder;
use App\Model\ControlItemPerfil;
class ControlItemMenuImportUsuarioSeeder extends Seeder
{
public $itens = [
[
'des_label_control' => 'Usuário - Import',
'cod_control' => 'MN_DIR_IMPORT_USUARIOS',
'des_control_01' => 'Visualiza Menu',
'val_control_01' => 'N',
'des_control_02' => 'Utiliza Regra secundária de validação?(S-Sim N-Não)',
'val_control_02' => 'S',
'des_control_03' => 'Ordem',
'val_control_03' => '4',
'des_control_04' => 'Ícone',
'val_control_04' => 'tasks',
'des_control_05' => 'Link Página',
'des_control_06' => 'Control PAI',
'val_control_06' => '27',
'control_tipo_id' => 2
]
];
protected $padraoPerfis = [
'MN_DIR_IMPORT_USUARIOS' => [
[
'perfil_id' => 1,
'val_control_01' => 'S',
],
[
'perfil_id' => 2,
'val_control_01' => 'S',
],
[
'perfil_id' => 3,
'val_control_01' => 'S',
]
]
];
private function saveControl($control){
$itemControl = ControlItem::where('cod_control', $control['cod_control'])->first();
if(!$itemControl){
unset($control['filhos']);
$itemControl = new ControlItem($control);
$itemControl->usuario_id_criacao = 1;
$itemControl->usuario_id_alteracao = 1;
$itemControl->ind_situacao = 'A';
$itemControl->save();
}
if(isset($this->padraoPerfis[$control['cod_control']])){
foreach ($this->padraoPerfis[$control['cod_control']] as $key => $perfil){
if(!ControlItemPerfil::where('control_item_id',$itemControl->control_item_id)->where('perfil_id',$perfil['perfil_id'])->exists() ){
if(Perfil::find($perfil['perfil_id'])){
$item = new ControlItemPerfil($perfil);
$item->control_item_id = $itemControl->control_item_id;
$item->perfil_id = $perfil['perfil_id'];
$item->usuario_id_criacao = 1;
$item->usuario_id_alteracao = 1;
$item->ind_situacao = 'A';
$item->save();
}
}
}
}
return $itemControl;
}
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
foreach ($this->itens as $key => $control) {
if(User::find(1)){
$controlSave = $this->saveControl($control);
}
}
}
public function rollback()
{
foreach ($this->itens as $key => $control) {
$itemControl = ControlItem::where('cod_control', $control['cod_control'])->first();
if($itemControl && isset($this->padraoPerfis[$control['cod_control']])){
foreach ($this->padraoPerfis[$control['cod_control']] as $key => $perfil){
ControlItemPerfil::where('control_item_id',$itemControl->control_item_id)->where('perfil_id',$perfil['perfil_id'])->forceDelete();
}
}
ControlItem::where('cod_control', $control['cod_control'])->forceDelete();
}
}
}
Editor is loading...