Files
stradaautopartes/app/Http/Livewire/ReportePedidoController.php
2024-09-02 19:36:22 -07:00

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');
}
}