Материал: Автоматизация учета аренды площадей клиентами компании ООО "Грандтитул"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
102
switch(count($explodedCreated)){
case2:
return$query->whereBetween('created_at',[$explodedCreated[0],$explodedCreated[1]]);
case1:
return$query->where('created_at','>=',$explodedCreated[0]);
default:
returnfalse;
}
})
->when($clientField,function($query)use($clientField){
$queryTwo="clients.id like '%".$clientField."%' OR "
."clients.f_name like '%".$clientField."%' OR "
."clients.l_name like '%".$clientField."%' OR"
."clients.m_name like '%".$clientField."%'"
."";
return$query->whereExists(function($query)use($queryTwo){
$query->select(DB::raw('id, f_name, l_name, m_name'))
->from('clients')
->whereRaw($queryTwo);
});
})
->when(($sqMin&&$sqMax),function($query)use($sqMin,$sqMax){
return$query
->where(function($query)use($sqMin,$sqMax){
$query->where('sq','<=',$sqMax)
->where('sq','>=',$sqMin);
});
})
->when(($sqMin),function($query)use($sqMin){
return$query->where('sq','>=',$sqMin);
})
->when(($sqMax),function($query)use($sqMax){
return$query->where('sq','<=',$sqMax);
})
->when(($priceMin&&$priceMax),function($query)use($priceMin,$priceMax){
return$query
->where(function($query)use($priceMin,$priceMax){
$query->where('price','<=',$priceMax)
->where('price','>=',$priceMin);
});
})
->when(($priceMin),function($query)use($priceMin){
return$query->where('price','>=',$priceMin);
})
->when(($priceMax),function($query)use($priceMax){
return$query->where('price','<=',$priceMax);
})
->when(($countRoom),function($query)use($countRoom){
return$query->whereIn('count_room',$countRoom);
})
->limit(15)
->paginate(15);
}
}
<?php
namespaceApp\Http\Controllers;
useApp\Http\Requests\ClientRequest;
useIlluminate\Http\Request;
useApp\Client;
useIlluminate\Support\Facades\Validator;
103
classClientControllerextendsController
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
publicfunctionindex()
{
returnview('client.index');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
publicfunctioncreate()
{
//return view('client.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
publicfunctionstore(ClientRequest$request)
{
$client=Client::create($request->all());
returnjson_encode(['success'=>true,'added'=>$client]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
publicfunctionshow($id)
{
//
}
/**
* Обновлениеспецифичноймодели
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
publicfunctionupdate(ClientRequest$request,$id)
{
$client=Client::findOrFail($id);
$client->fill($request->all());
$client->save();
returnjson_encode(['success'=>true,'updated'=>$client]);
}
/**
* Удаление специфичной модели
*
* @param int $id
* @return \Illuminate\Http\Response
104
*/
publicfunctiondestroy($id)
{
$client=Client::findOrFail($id);
$client->delete();
returnjson_encode(['success'=>true,'deleted'=>$id]);
}
publicfunctionsearch(Request$request){
$searchField=$request->search_field;
$createdAtField=$request->created_at_field;
$fcField=$request->fc_field;
returnClient::
when($fcField,function($query)use($fcField){
return$query->where('fc',$fcField);
})
->when($createdAtField,function($query)use($createdAtField){
$explodedCreated=explode(',',$createdAtField);
switch(count($explodedCreated)){
case2:
return$query->whereBetween('created_at',[$explodedCreated[0],$explodedCreated[1]]);
case1:
return$query->where('created_at','>=',$explodedCreated[0]);
default:
returnfalse;
}
})
->when($searchField,function($query)use($searchField){
return$query
->where(function($query)use($searchField){
$query->where('f_name','like','%'.$searchField.'%')
->orWhere('m_name','like','%'.$searchField.'%')
->orWhere('l_name','like','%'.$searchField.'%')
->orWhere('id','like','%'.$searchField.'%')
->orWhere('address','like','%'.$searchField.'%')
->orWhere('phone','like','%'.$searchField.'%');
});
})
->limit(15)
->paginate(15);
}
}
<?php
namespaceApp\Http\Controllers;
useApp\Http\Requests\OrderRequest;
useApp\Order;
useApp\OrderStatus;
useIlluminate\Http\Request;
useApp\Operation;
useIlluminate\Support\Facades\Auth;
classOrderControllerextendsController
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
publicfunctionindex()
{
returnview('order.index',['backToFront'=>[
105
'operations'=>Operation::all(),
'statuses'=>OrderStatus::all()
]]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
publicfunctioncreate()
{
//
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
publicfunctionstore(OrderRequest$request)
{
$toFill=$request->all();
$toFill['agent_id']=$request->user()->id;
$order=Order::create($toFill);
returnjson_encode(['success'=>true,'added'=>$order]);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
publicfunctionshow($id)
{
//
}
/**
* Обновлениеспецифичноймодели
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
publicfunctionupdate(OrderRequest$request,$id)
{
$order=Order::findOrFail($id);
$toFill=$request->all();
$toFill['agent_id']=$request->user()->id;
$order->fill($toFill);
$order->save();
returnjson_encode(['success'=>true,'updated'=>$order]);
}
/**
* Удаление специфичной модели
*
* @param int $id
106
* @return \Illuminate\Http\Response
*/
publicfunctiondestroy($id)
{
$client=Order::findOrFail($id);
$client->delete();
returnjson_encode(['success'=>true,'deleted'=>$id]);
}
publicfunctionsearch(Request$request){
$searchField=$request->client_field;
$createdAtField=$request->created_at_field;
$operationField=$request->operation_field;
$statusField=$request->status_field;
$agentField=$request->agent_field;
$onlyMy=$request->only_my;
returnOrder::with('status','operation','agent','client')
->when($operationField,function($query)use($operationField){
return$query->where('operation_id',$operationField);
})
->when($statusField,function($query)use($statusField){
return$query->where('order_status_id',$statusField);
})
->when($createdAtField,function($query)use($createdAtField){
$explodedCreated=explode(',',$createdAtField);
switch(count($explodedCreated)){
case2:
return$query->whereBetween('created_at',[$explodedCreated[0],$explodedCreated[1]]);
case1:
return$query->where('created_at','>=',$explodedCreated[0]);
default:
returnfalse;
}
})
->when($searchField,function($query)use($searchField){
return$query
->where(function($query)use($searchField){
$query->where('f_name','like','%'.$searchField.'%')
->orWhere('m_name','like','%'.$searchField.'%')
->orWhere('l_name','like','%'.$searchField.'%')
->orWhere('id','like','%'.$searchField.'%');
});
})
->when($agentField,function($query)use($agentField){
$queryTwo="clients.id like '%".$agentField."%' OR "
."clients.f_name like '%".$agentField."%' OR "
."clients.l_name like '%".$agentField."%' OR"
."clients.m_name like '%".$agentField."%'"
."";
return$query->whereExists(function($query)use($queryTwo){
$query->select(DB::raw('id, f_name, l_name, m_name'))
->from('clients')
->whereRaw($queryTwo);
});
})
Источник: https://baza.diplomsite.ru/previewfile/2357