75 lines
2.5 KiB
PHP
75 lines
2.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Livewire;
|
|
|
|
use App\Exports\PedidosExport;
|
|
use App\Models\Pedido;
|
|
use Carbon\Carbon;
|
|
use Livewire\Component;
|
|
use Livewire\WithPagination;
|
|
use Maatwebsite\Excel\Facades\Excel;
|
|
|
|
class ReportePedidoController extends Component
|
|
{
|
|
use WithPagination;
|
|
public $fecha_inicio, $fecha_final;
|
|
public $fn_inicio, $fn_final;
|
|
public $is_venta_cerrada = "", $is_venta_entregada ="";
|
|
|
|
public function render()
|
|
{
|
|
if(is_null($this->fecha_inicio) && is_null($this->fecha_final))
|
|
{
|
|
$this->fecha_inicio = Carbon::now()->format('Y-m-d');
|
|
$this->fecha_final = Carbon::now()->format('Y-m-d');
|
|
$this->fn_inicio= Carbon::parse($this->fecha_inicio)->startOfDay();
|
|
$this->fn_final= Carbon::parse($this->fecha_final)->endOfDay();
|
|
|
|
}
|
|
$query = Pedido::query();
|
|
|
|
$query->when($this->is_venta_entregada, function ($query) {
|
|
return $query->where('is_venta_entregada',"=",$this->is_venta_entregada);
|
|
});
|
|
$query->when($this->is_venta_cerrada, function ($query) {
|
|
return $query->where('is_venta_cerrada',"=",$this->is_venta_cerrada);
|
|
});
|
|
|
|
$query->when(($this->fn_inicio && $this->fn_final), function ($query) {
|
|
return $query->whereBetween('created_at', [$this->fn_inicio, $this->fn_final]);
|
|
});
|
|
return view('pedido.reporte-pedido',[
|
|
'pedidos' => $query->paginate(10),
|
|
]);
|
|
}
|
|
|
|
public function updatedFechaInicio()
|
|
{
|
|
$this->fn_inicio= Carbon::parse($this->fecha_inicio)->startOfDay();
|
|
}
|
|
|
|
public function updatedFechaFinal()
|
|
{
|
|
$this->fn_final= Carbon::parse($this->fecha_final)->endOfDay();
|
|
}
|
|
|
|
public function export()
|
|
{
|
|
$query = Pedido::query();
|
|
|
|
$query->when($this->is_venta_entregada, function ($query) {
|
|
return $query->where('is_venta_entregada',"=",$this->is_venta_entregada);
|
|
});
|
|
$query->when($this->is_venta_cerrada, function ($query) {
|
|
return $query->where('is_venta_cerrada',"=",$this->is_venta_cerrada);
|
|
});
|
|
|
|
$query->when(($this->fn_inicio && $this->fn_final), function ($query) {
|
|
return $query->whereBetween('created_at', [$this->fn_inicio, $this->fn_final]);
|
|
});
|
|
$this->resetPage();
|
|
|
|
return Excel::download(new PedidosExport($this->fn_inicio, $this->fn_final,$this->is_venta_cerrada,$this->is_venta_entregada),'pedido-'.Carbon::now()->format('Y-m-d').'.xlsx');
|
|
}
|
|
}
|