108 lines
3.9 KiB
PHP
108 lines
3.9 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\API;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Nfe;
|
|
use App\Models\Nfce;
|
|
|
|
class VendaController extends Controller
|
|
{
|
|
public function pesquisa(Request $request){
|
|
$vendas = Nfe::where('nves.empresa_id', $request->empresa_id)
|
|
->join('clientes', 'clientes.id', '=', 'nves.cliente_id')
|
|
->select('nves.cliente_id', 'nves.id', 'nves.numero_sequencial')
|
|
->with('cliente')
|
|
->when(!is_numeric($request->pesquisa), function ($q) use ($request) {
|
|
return $q->where('clientes.razao_social', 'LIKE', "%$request->pesquisa%");
|
|
})
|
|
->when(is_numeric($request->pesquisa), function ($q) use ($request) {
|
|
return $q->where('nves.numero_sequencial', 'LIKE', "%$request->pesquisa%");
|
|
})
|
|
->get();
|
|
|
|
$vendasPdv = Nfce::where('nfces.empresa_id', $request->empresa_id)
|
|
->select('nfces.cliente_id', 'nfces.id', 'nfces.numero_sequencial')
|
|
->with('cliente')
|
|
->when(!is_numeric($request->pesquisa), function ($q) use ($request) {
|
|
return $q->where('clientes.razao_social', 'LIKE', "%$request->pesquisa%")
|
|
->join('clientes', 'clientes.id', '=', 'nfces.cliente_id');
|
|
})
|
|
->when(is_numeric($request->pesquisa), function ($q) use ($request) {
|
|
return $q->where('nfces.numero_sequencial', 'LIKE', "%$request->pesquisa%");
|
|
})
|
|
->get();
|
|
|
|
$data = [];
|
|
|
|
foreach($vendas as $v){
|
|
$v->tipo = 'pedido';
|
|
$data[] = $v;
|
|
}
|
|
|
|
foreach($vendasPdv as $v){
|
|
$v->tipo = 'pdv';
|
|
$data[] = $v;
|
|
}
|
|
|
|
return response()->json($data, 200);
|
|
}
|
|
|
|
public function filtroTroca(Request $request)
|
|
{
|
|
$start_date = $request->start_date;
|
|
$end_date = $request->end_date;
|
|
$codigo_venda = $request->codigo_venda;
|
|
$numero_documento = $request->numero_documento;
|
|
|
|
$perPage = 20;
|
|
$page = $request->page ?? 1;
|
|
|
|
$queryNfe = Nfe::where('empresa_id', $request->empresa_id)
|
|
->when(!empty($start_date), function ($query) use ($start_date) {
|
|
return $query->whereDate('created_at', '>=', $start_date);
|
|
})
|
|
->when(!empty($end_date), function ($query) use ($end_date) {
|
|
return $query->whereDate('created_at', '<=', $end_date);
|
|
})
|
|
->when(!empty($codigo_venda), function ($query) use ($codigo_venda) {
|
|
return $query->where('numero_sequencial', $codigo_venda);
|
|
})
|
|
->when(!empty($numero_documento), function ($query) use ($numero_documento) {
|
|
return $query->where('numero', $numero_documento);
|
|
})
|
|
->where('tpNF', 1)
|
|
->where('orcamento', 0)
|
|
->orderBy('created_at', 'desc');
|
|
|
|
$queryNfce = Nfce::where('empresa_id', $request->empresa_id)
|
|
->when(!empty($start_date), function ($query) use ($start_date) {
|
|
return $query->whereDate('created_at', '>=', $start_date);
|
|
})
|
|
->when(!empty($end_date), function ($query) use ($end_date) {
|
|
return $query->whereDate('created_at', '<=', $end_date);
|
|
})
|
|
->when(!empty($codigo_venda), function ($query) use ($codigo_venda) {
|
|
return $query->where('numero_sequencial', $codigo_venda);
|
|
})
|
|
->when(!empty($numero_documento), function ($query) use ($numero_documento) {
|
|
return $query->where('numero', $numero_documento);
|
|
})
|
|
->orderBy('created_at', 'desc');
|
|
|
|
$nves = $queryNfe->forPage($page, $perPage)->get();
|
|
$nfces = $queryNfce->forPage($page, $perPage)->get();
|
|
|
|
$data = $nves->merge($nfces)->sortByDesc('created_at')->values();
|
|
|
|
$isLastPage = $data->count() < $perPage;
|
|
|
|
return response()->json([
|
|
'html' => view('trocas.partials.linha_escolha', compact('data'))->render(),
|
|
'lastPage' => $isLastPage
|
|
]);
|
|
}
|
|
|
|
}
|