CasperSecurity
<?php
namespace App\Http\Livewire\Tendermanagement;
use Livewire\Component;
use App\Models\TenderActivity;
use Illuminate\Support\Str;
use Livewire\WithPagination;
use Illuminate\Support\Facades\Auth;
class TenderActivityLivewire extends Component
{
use WithPagination;
protected $paginationTheme = 'bootstrap';
public $page_names="Tender Activities";
public $page_name="Tender Activity";
public $search;
public $perPage=10;
public $orderBy='id';
public $orderAsc='1';
public $activity_name,$seq_no,$status;
public $completion_doc_flag=0;
public $modelid;
public $showmodal=false;
public $rules=[
'activity_name'=>'required|max:255',
'seq_no'=>'required|max:255'
];
public $updatedrules=[
'activity_name'=>'required|max:255',
'seq_no'=>'required|max:255'
];
public $messages=[
'activity_name.required'=>'This field is required',
'activity_name.max'=>'This field allows maximum 255 character',
//'activity_name.unique'=>'Activity Exist.Enter new Activity name',
'seq_no.required'=>'This field is required',
// 'seq_no.unique'=>'Seq no Exist.Enter new Sequence number',
'seq_no.max'=>'This field allows maximum 255 character',
];
protected $listeners = ['delete'];
public function updateclick($id){
$this->modelid=$id;
// $this->resetValidation();
$this->showmodal=true;
$this->loadData($id);
}
public function loadData($id){
$data=TenderActivity::find($id);
if($data){
$this->activity_name=$data->activity_name;
$this->seq_no=$data->seq_no;
$this->completion_doc_flag=$data->completion_doc_flag;
$this->estimstion_flag=$data->estimstion_flag;
$this->status=$data->status;
}
//dd($this->lat);
}
public function updatingSearch()
{
$this->resetPage();
}
public function showmodalclick(){
$res=TenderActivity::where('deleted_at',null)->get();
if(sizeof($res)==0){
$this->seq_no=1;
}
else{
$this->seq_no=sizeof($res)+1;
}
// dd($this->seq_no);
$this->resetValidation();
$this->showmodal=true;
$this->cleanVar();
//$this->dispatchBrowserEvent('livewire:load');
}
public function closemodalclick(){
$this->resetValidation();
$this->showmodal=false;
}
public function deleteclick($id){
$this->modelid=$id;
$this->dispatchBrowserEvent('confirmdelete',[
'message'=>'Are you sure want to delete this data ?',
'funcname'=>'delete'
]);
}
public function cleanVar(){
$this->modelid=null;
// $this->seq_no=null;
$this->activity_name=null;
$this->completion_doc_flag=0;
$this->estimstion_flag=0;
//$this->showmodal=false;
}
public function save(){
//dd();
$this->validate($this->rules,$this->messages);
//dd($this->rules);
$response=TenderActivity::where('activity_name',$this->activity_name)->latest()->first();
if($response){
$this->dispatchBrowserEvent('showsuccessmsg',[
'type'=>'error',
'message'=>'Sorry !!! Activity name has already exists in our database. Please Try Another Name'
]);
}else{
//dd($this->completion_doc_flag);
$response=TenderActivity::create([
'activity_name'=>$this->activity_name,
'seq_no'=>$this->seq_no,
'completion_doc_flag'=>$this->completion_doc_flag,
'estimstion_flag'=>$this->estimstion_flag,
'created_by'=>Auth::user()->id,
]);
if($response){
$this->cleanVar();
$this->dispatchBrowserEvent('closeOffCanvas');
//emotify('success', 'The Department data has been saved successfully');
$this->dispatchBrowserEvent('showsuccessmsg',[
'type'=>'success',
'message'=>'The Activity data has been saved successfully'
]);
}
}
//Str::kebab($this->dept_name)
}
public function update()
{
$this->validate($this->updatedrules,$this->messages);
$response=TenderActivity::find($this->modelid);
// dd($response);
if($response){
//dd($this->completion_doc_flag);
$res=TenderActivity::where('seq_no',$this->seq_no)->where('id','!=',$response->id)->where('deleted_at',null)->latest()->first();
//dd($res) ;
if(!$res){
$response->update([
'activity_name'=>$this->activity_name,
'seq_no'=>$this->seq_no,
'completion_doc_flag'=>$this->completion_doc_flag,
'estimstion_flag'=>$this->estimstion_flag,
'modified_by'=>Auth::user()->id,
'status'=>$this->status
]);
if($response){
$this->cleanVar();
$this->dispatchBrowserEvent('closeOffCanvas');
//emotify('success', 'The Department data has been saved successfully');
$this->dispatchBrowserEvent('showsuccessmsg',[
'type'=>'success',
'message'=>'The Activity data has been Updated successfully'
]);
}
else{
$this->dispatchBrowserEvent('showsuccessmsg',[
'type'=>'error',
'message'=>'Sorry !!! Activity name has already exists in our database. Please Try Another Name'
]);
}
}
else{
$this->dispatchBrowserEvent('showsuccessmsg',[
'type'=>'error',
'message'=>'Sorry !!! Activity name has already exists in our database. Please Try Another Name'
]);
}
}
}
public function delete(){
$response=TenderActivity::find($this->modelid);
if($response){
$response->delete();
$res=TenderActivity::where('deleted_at',null)->get();
foreach($res as $key => $r){
$r->seq_no=$key+1;
$r->save();
}
$this->cleanVar();
$this->dispatchBrowserEvent('showsuccessmsg',[
'type'=>'success',
'message'=>'The Activity data has been deleted successfully'
]);
}
}
public function read(){
$tender_activity=TenderActivity::search($this->search)->orderBy($this->orderBy, $this->orderAsc ? 'asc' : 'desc')->paginate($this->perPage);
return $tender_activity;
}
public function render()
{
$activities=$this->read();
return view('livewire.tendermanagement.tender-activity-livewire',compact('activities'));
}
}