<?php

namespace App\Http\Livewire;

use App\Models\PayElement;
use App\Models\PayElementGroup;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Jimmyjs\ReportGenerator\Facades\PdfReportFacade as PdfReport;
use Jimmyjs\ReportGenerator\Facades\ExcelReportFacade as ExcelReport;
use Livewire\Component;
use Illuminate\View\View;
use DateTime;
use Livewire\WithPagination;

class ApprovalSetup extends Component
{
    use AuthorizesRequests;

    public $approvables;

    public function mount(): void
    {
        $this->approvables = [];
    }

    private function refreshData() {
    }

    public function updatePayElementGroupOrder($orderList){
        foreach($orderList as $order){
            PayElementGroup::where('id', $order['value'])->update([
                'order' =>$order['order']
            ]);
        }
    }

    public function updatePayElementOrder($orderList){
        foreach($orderList as $order){
            foreach($order['items'] as $item){
                PayElement::where('id', $item['value'])->update([
                    'order' => $item['order'],
                    'pay_element_group_id' => $order['value'],
                ]);
            }
        }
    }

    public function deletePayElementGroup(){

    }

    public function deletePayElement(){

    }

    public function render(): View
    {
        $this->refreshData();
        $payElements = $this->reportQuery->get();
        return view('livewire.human-resource.pay-elements.list-pay-elements',
            [
                'payElements' => $payElements,
                'payElementGroups' => $this->payElementGroups,
            ]
        )->extends('layouts.app');
    }
}
