<?php

namespace App\Http\Livewire\Traits;

trait HasPedoni
{
    public $currentPedone = 0;
    public $pedone_posizione = '';
    public $pedone_posizione_desc = '';
    public $pedone_referto = '';
    public $pedone_prognosi = '';
    public $pedone_pioggia = '';
    public $pedone_ombrello = '';
    public $pedone_notte = '';
    public $pedone_abiti_scuri = '';

    public function resetPedoniData()
    {
        $this->currentPedone = 0;
        $this->generalizzato = '';
        $this->generalizzato_altrove = '';
        $this->infortunato = '';
        $this->infortunato_ospedale = '';
        $this->pedone_posizione = '';
        $this->pedone_posizione_desc = '';
        $this->pedone_referto = '';
        $this->pedone_prognosi = '';
        $this->pedone_pioggia = '';
        $this->pedone_ombrello = '';
        $this->pedone_notte = '';
        $this->pedone_abiti_scuri = '';
        $this->verbale_violazione_numero = '';
        $this->articolo_violato = '';
        $this->cds = '';
    }

    public function editPedoneData($progressive)
    {
        $this->resetPedoniData();
        $this->currentProgressive = $progressive;
        $x = \App\Models\ReportDataPartiCoinvolte::where('report_id', $this->dataId)->where('progressive', $progressive)->first();
        $this->currentPedone = $x->anagrafica;
        $data = \App\Models\ReportDataPedoni::where('progressive', $progressive)->where('report_id', $this->dataId)->first();

        if ($data != null) {
            $this->generalizzato = $data->generalizzato;
            $this->generalizzato_altrove = $data->generalizzato_altrove;
            $this->infortunato = $data->infortunato;
            $this->infortunato_ospedale = $data->infortunato_ospedale;
            $this->pedone_posizione = $data->pedone_posizione;
            $this->pedone_posizione_desc = $data->pedone_posizione_desc;
            $this->pedone_referto = $data->pedone_referto;
            $this->pedone_prognosi = $data->pedone_prognosi;
            $this->pedone_pioggia = $data->pedone_pioggia;
            $this->pedone_ombrello = $data->pedone_ombrello;
            $this->pedone_notte = $data->pedone_notte;
            $this->pedone_abiti_scuri = $data->pedone_abiti_scuri;
            $this->verbale_violazione_numero = $data->verbale_violazione_numero;
            $this->articolo_violato = $data->articolo_violato;
            $this->cds = $data->cds;
        }

        if ($this->currentPedone > 0) {
            $this->emit('load-pedone', $this->getAnagrafica($this->currentPedone));
        }
        $this->emit('load-select-pedone');
    }

    public function pedoneSave()
    {
        \App\Models\ReportDataPedoni::where('progressive', $this->currentProgressive)->where('report_id', $this->dataId)->delete();
        try {
            $pedone = \App\Models\ReportDataPedoni::create([
                'progressive' => $this->currentProgressive,
                'report_id' => $this->dataId,
                'pedoni' => $this->currentPedone,
                'generalizzato' => $this->generalizzato,
                'generalizzato_altrove' => $this->generalizzato_altrove,
                'infortunato' => $this->infortunato,
                'infortunato_ospedale' => $this->infortunato_ospedale,
                'pedone_posizione' => $this->pedone_posizione,
                'pedone_posizione_desc' => $this->pedone_posizione_desc,
                'pedone_referto' => $this->pedone_referto,
                'pedone_prognosi' => $this->pedone_prognosi,
                'pedone_pioggia' => $this->pedone_pioggia,
                'pedone_ombrello' => $this->pedone_ombrello,
                'pedone_notte' => $this->pedone_notte,
                'pedone_abiti_scuri' => $this->pedone_abiti_scuri,
                'verbale_violazione_numero' => $this->verbale_violazione_numero,
                'articolo_violato' => $this->articolo_violato,
                'cds' => $this->cds
            ]);
            session()->flash('success', 'Record salvato');
        } catch (\Exception $ex) {
            session()->flash('error', 'Errore in fase di salvataggio (' . $ex->getMessage() . ')');
        }
        $this->resetPedoniData();
        $this->emit('close-modal');
    }
}
