
<?php $bloquear = (isset($dados['ordem']->status_nome) && strtoupper($dados['ordem']->status_nome) == 'CANCELADA'); ?>

<!-- Departamento -->
<div class="form-group">
    <label for="id_departamento">Departamento</label>
    <select name="id_departamento" id="id_departamento" class="form-control" <?= $bloquear ? 'disabled' : '' ?> required>
        <option value="">Selecione o Departamento</option>
        <?php foreach ($dados['departamentos'] as $dep): ?>
            <option value="<?= $dep->id_departamento ?>" <?= ($dados['ordem']->id_departamento ?? '') == $dep->id_departamento ? 'selected' : '' ?>>
                <?= htmlspecialchars($dep->nome_departamento) ?>
            </option>
        <?php endforeach; ?>
    </select>
    <?= (($dados['ordem']->id_departamento ?? null) == $dep->id_departamento ? 'selected' : '') ?>

</div>

<!-- Responsável -->
<div class="form-group">
    <label for="id_responsavel">Responsável</label>
    <select name="id_responsavel" id="id_responsavel" class="form-control" <?= $bloquear ? 'disabled' : '' ?> required>
        <option value="">Selecione o Responsável</option>
        <?php foreach($dados['funcionarios'] as $func): ?>
            <option value="<?= $func->id_funcionario ?>" <?= ($dados['ordem']->id_responsavel ?? '') == $func->id_funcionario ? 'selected' : '' ?>>
                <?= htmlspecialchars($func->nome_pessoa) ?> (<?= htmlspecialchars($func->cargo) ?>)
            </option>
        <?php endforeach; ?>
    </select>
    <?= ((isset($dados['ordem']) && $dados['ordem']->id_responsavel == $func->id_funcionario) ? 'selected' : '') ?>

</div>
<hr>
  <?php
    // calcula tipo_destino baseado na cidade_destino se for edição
    $tipo_destino_calc = 'viagens_internacionais';
    if (!empty($dados['ordem']->cidade_destino)) {
        $cidade = null;
        foreach ($dados['cidades'] as $c) {
            if ($c->id_cidade == $dados['ordem']->cidade_destino) {
                $cidade = $c;
                break;
            }
        }
        $tipo_destino_calc = strtolower(str_replace(' ', '_', $cidade ? $cidade->tipo_destino : 'outras_cidades'));
    }
    ?>
<!-- Cidade Origem -->
<?php if ($bloquear): ?>
    <input type="hidden" name="cidade_origem" value="<?= $dados['ordem']->cidade_origem ?>">
<?php else: ?>
<div class="form-row mb-3">
    <div class="form-group col-md-6">
        <label for="cidade_origem">Cidade Origem</label>
        <select name="cidade_origem" id="cidade_origem" class="form-control">
            <option value="">Selecione</option>
            <?php foreach ($dados['cidades'] as $cidade): ?>
                <option value="<?= $cidade->id_cidade ?>"
                    <?= ($dados['ordem']->cidade_origem ?? '') == $cidade->id_cidade ? 'selected' : '' ?>>
                    <?= htmlspecialchars($cidade->nome) ?>
                </option>
            <?php endforeach; ?>
        </select>
    </div>
<?php endif; ?>

<!-- Cidade Destino -->
<?php if ($bloquear): ?>
    <input type="hidden" name="cidade_destino" value="<?= $dados['ordem']->cidade_destino ?>">
<?php else: ?>
    <div class="form-group col-md-6">
        <label for="cidade_destino">Cidade Destino</label>
        <select name="cidade_destino" id="cidade_destino" class="form-control">
            <option value="">Selecione</option>
            <?php foreach ($dados['cidades'] as $cidade): ?>
                <option value="<?= $cidade->id_cidade ?>"
                    <?= ($dados['ordem']->cidade_destino ?? '') == $cidade->id_cidade ? 'selected' : '' ?>>
                    <?= htmlspecialchars($cidade->nome) ?>
                </option>
            <?php endforeach; ?>
        </select>
    </div>
</div>
<?php endif; ?>


<!-- //TODO: (ALEX) ADICIONEI AQUI TIPO DE DESTINO PARA FAZER O CÁLCULO -->
<div class="form-row mb-3">
    <div class="col-md-12">
        <div class="form-group col-md-6">
            <label for="tipo_destino">Tipo de Destino</label>
            <!-- Tipo Destino -->
<?php if ($bloquear): ?>
    <input type="hidden" name="tipo_destino" value="<?= $dados['ordem']->tipo_destino ?>">
<?php else: ?>
    <select name="tipo_destino" id="tipo_destino" class="form-control" required>
        <option value="">Selecione</option>
        <option value="capitais_de_estado" <?= ($dados['ordem']->tipo_destino ?? '') == 'capitais_de_estado' ? 'selected' : '' ?>>Capitais de Estado</option>
        <option value="outras_cidades" <?= ($dados['ordem']->tipo_destino ?? '') == 'outras_cidades' ? 'selected' : '' ?>>Outras Cidades</option>
        <option value="capital_federal" <?= ($dados['ordem']->tipo_destino ?? '') == 'capital_federal' ? 'selected' : '' ?>>Capital Federal</option>
        <option value="viagens_internacionais" <?= ($dados['ordem']->tipo_destino ?? '') == 'viagens_internacionais' ? 'selected' : '' ?>>Viagens Internacionais</option>
    </select>
<?php endif; ?>

        </div>
    </div>
</div>

<!-- Mapa -->
<div class="form-row mb-3">
    <div class="col-md-12">
        <div id="map" style="width: 100%; height: 300px; border: 1px solid #ccc;"></div>
    </div>
</div>

<hr>
<hr>
<div class="form-group col-md-6">
        <label for="km_percorrido">KM entre as cidades</label>
        <input type="number" name="km_percorrido" id="km_percorrido" class="form-control"
               value="<?= isset($dados['ordem']->km_percorrido) ? htmlspecialchars($dados['ordem']->km_percorrido) : '' ?>" readonly>
</div>
<hr>


<hr>


<div class="form-row">
    <div class="form-group col-md-6">
        <label for="id_funcionario_add">Adicionar Funcionário à Ordem</label>
        <div class="input-group">
            <select id="id_funcionario_add" class="form-control">
                <option value="">Selecione um funcionário</option>
                <?php foreach ($dados['funcionarios'] as $func): ?>
                    <?php
                        $cargo = htmlspecialchars($func->cargo);
                        $nome = htmlspecialchars($func->nome_pessoa);
                        $disabled = $func->em_ordem_aberta ? 'disabled class="text-danger"' : '';
                        $emViagem = $func->em_ordem_aberta ? ' - EM VIAGEM' : '';
                    ?>
                    <option value="<?= $func->id_funcionario ?>" data-cargo="<?= $cargo ?>" <?= $disabled ?>>
                        <?= $nome ?> (<?= $cargo ?><?= $emViagem ?>)
                    </option>
                <?php endforeach; ?>
            </select>

            <div class="input-group-append">
                <button type="button" id="btn-add-funcionario" class="btn btn-success">Adicionar</button>
            </div>
        </div>
        <small class="form-text text-muted">Adicione os funcionários que irão na ordem de viagem.</small>
       
    </div>

    <div class="form-group col-md-6">
        <label>Funcionários na Ordem</label>
        <ul id="lista-funcionarios" class="list-group"></ul>
    </div>
</div>


           

<hr>

<div class="form-row">
    <div class="col-md-12">
        <h5>Valores das Diárias por Funcionário</h5>
        <ul id="lista-valores-diarias" class="list-group mb-2"></ul>
        <div>
    </div>
 <!-- Total Diárias (Banco) 
<div>
    <strong>Total Diárias (Banco): R$ <?= number_format($dados['ordem']->total_diarias ?? 0, 2, ',', '.') ?></strong>
</div>-->

<!-- Total Diárias (Calculado) -->



 <?php if (!empty($dados['ordem']->diarias)): ?>
            <div class="mt-3">
                <h5>Valores das Diárias</h5>
                <ul>
                    <?php foreach ($dados['ordem']->diarias as $diaria): ?>
                        <li>
                            Funcionário ID: <?= $diaria->id_funcionario ?> -
                            Quantidade: <?= $diaria->qtde ?> -
                            Valor Unitário: <?= number_format($diaria->valor, 2, ',', '.') ?> 
                            
                                
    
</div>
                        </li>
                    <?php endforeach; ?>
                </ul>
            </div>
        <?php endif; ?>

<div>
    <strong>Total Diárias (Calculado): R$<span id="total-diarias">0,00</span></strong>
</div>





<hr>

 <input type="hidden" id="total_diarias_banco" value="<?= floatval($dados['ordem']->total_diarias_card ?? 0) ?>">

<div class="container py-4">
    <div class="row justify-content-center">
        <div class="col-md-6 text-center mb-2">
            <div class="row">
                <div class="col-md-6 mb-2">
                    <label for="data_saida"><strong>Data Inicial</strong></label>
                    <input type="date" name="data_saida" id="data_saida" class="form-control" required
                        value="<?= $dados['ordem']->data_saida ?? '' ?>">
                </div>
                <div class="col-md-6 mb-2">
                    <label for="hora_saida"><strong>Hora Inicial</strong></label>
                    <input type="time" name="hora_saida" id="hora_saida" class="form-control" required
                        value="<?= $dados['ordem']->hora_saida ?? '' ?>">
                </div>
            </div>
        </div>
    </div>
    <div class="row justify-content-center">
        <div class="col-md-6 text-center">
            <div class="row">
                <div class="col-md-6 mb-2">
                    <label for="data_chegada"><strong>Data Final</strong></label>
                    <input type="date" name="data_chegada" id="data_chegada" class="form-control" required
                        value="<?= $dados['ordem']->data_chegada ?? '' ?>">
                </div>
                <div class="col-md-6 mb-2">
                    <label for="hora_chegada"><strong>Hora Final</strong></label>
                    <input type="time" name="hora_chegada" id="hora_chegada" class="form-control" required
                        value="<?= $dados['ordem']->hora_chegada ?? '' ?>">
                </div>
            </div>
        </div>
    </div>
</div>


<div class="form-row mt-3">
    <div class="form-group col-md-12">
        <!-- Motivo -->
<?php if ($bloquear): ?>
    <input type="hidden" name="motivo" value="<?= htmlspecialchars($dados['ordem']->motivo) ?>">
<?php else: ?>
    <label for="motivo">Motivo da Viagem</label>
    <textarea name="motivo" id="motivo" class="form-control" rows="3" required><?= isset($dados['ordem']->motivo) ? htmlspecialchars($dados['ordem']->motivo) : '' ?></textarea>
<?php endif; ?> </div>
</div>
<div class="form-group">
    <label for="acompanhantes">Acompanhantes (Pacientes que irão na viagem)</label>
    <textarea name="acompanhantes" id="acompanhantes" class="form-control" rows="3" placeholder="Informe os nomes dos pacientes ou acompanhantes que irão na viagem"><?= $dados['acompanhantes'] ?? '' ?></textarea>
</div>


 <div class="form-group col-md-6">
        <label for="id_transporte">Tipo de Transporte</label>
        <select name="id_transporte" id="id_transporte" class="form-control" required>
            <option value="">Selecione</option>
            <?php foreach ($dados['tipos_transporte'] as $tipo): ?>
                <option value="<?= $tipo->id_transporte ?>"
                    <?= (isset($dados['ordem']->id_transporte) && $dados['ordem']->id_transporte == $tipo->id_transporte) ? 'selected' : '' ?>>
                    <?= htmlspecialchars($tipo->descricao) ?>
                </option>
            <?php endforeach; ?>
        </select>
    </div>

<div class="form-row">
     <div class="form-group col-md-6">
        <label for="id_veiculo">Veículo</label>
        <select name="id_veiculo" id="id_veiculo" class="form-control">
            <option value="">Selecione</option>
            <?php foreach ($dados['veiculos'] as $veiculo): ?>
                <option value="<?= $veiculo->id_veiculo ?>"
                    data-km_litro="<?= str_replace('.', ',', $veiculo->km_litro) ?>"
                    <?= (isset($dados['ordem']->id_veiculo) && $dados['ordem']->id_veiculo == $veiculo->id_veiculo) ? 'selected' : '' ?>>
                    <?= htmlspecialchars($veiculo->placa) ?> - <?= htmlspecialchars($veiculo->marca) ?> <?= htmlspecialchars($veiculo->modelo) ?>
                </option>
            <?php endforeach; ?>
        </select>
    </div>

    <div class="form-group col-md-3">
    <label for="km_inicial_ordem">KM Inicial</label>
    <input type="number" name="km_inicial_ordem" id="km_inicial_ordem"
           class="form-control bg-light" 
           value="<?= $dados['km_inicial_ordem'] ?? '' ?>">
</div>

<div class="form-group col-md-3">
    <label for="km_final_ordem">KM Final</label>
    <input type="number" name="km_final_ordem" id="km_final_ordem"
           class="form-control bg-light" 
           value="<?= $dados['km_final_ordem'] ?? '' ?>">
</div>

























<div class="form-row mt-2">
    <div class="form-group col-md-6">
        <label for="qtd_combustivel">Combustível Necessário (Litros)</label>
        <input type="text" name="combustivel_necessario" id="combustivel_necessario" class="form-control" readonly
            value="<?= $dados['ordem']->combustivel_necessario ?? '' ?>">
        <small class="form-text text-muted">Calculado automaticamente pelo KM e consumo do veículo.</small>
    </div>
</div>


<div class="form-row mt-3">
    <div class="form-group col-md-6">
        <label for="id_status">Status</label>
        <select name="id_status" id="id_status" class="form-control" required>
            <option value="">Selecione</option>
            <?php foreach ($dados['status'] as $status): ?>
                <option value="<?= $status->id_status ?>"
                    <?= (isset($dados['ordem']->id_status) && $dados['ordem']->id_status == $status->id_status) ? 'selected' : '' ?>>
                    <?= htmlspecialchars($status->descricao) ?>
                </option>
            <?php endforeach; ?>
        </select>
    </div>
   
</div>

<!-- Observação do Cancelamento -->
<?php
$id_status = $dados['ordem']->id_status ?? null;
$mostrarCampo = in_array($id_status, [6, 7]);
$readonly = ($id_status == 6);
$rotulo = ($id_status == 7) ? 'Observação da Rejeição' : 'Observação do Cancelamento';
?>

<div class="form-group col-md-12" id="observacao-cancelamento-wrapper" style="<?= $mostrarCampo ? '' : 'display: none;' ?>">
    <label for="observacao_cancelamento" id="label-observacao"><?= $rotulo ?></label>
    <textarea name="observacao_cancelamento" id="observacao_cancelamento" class="form-control" rows="3" <?= $readonly ? 'readonly' : '' ?>>
<?= htmlspecialchars($dados['ordem']->observacao_cancelamento ?? '') ?>
    </textarea>
</div>







<!-- Passagens Dinâmicas -->
<div class="form-row mt-3" id="div-passagens-multiplas" style="display:none;">
    <div class="form-group col-md-12">
        <label>Passagens (adicionar várias se necessário)</label>
        <div id="lista-passagens"></div>
        <button type="button" class="btn btn-primary btn-sm mt-2" onclick="addPassagem()">Adicionar Passagem</button>
    </div>
</div>

<!-- Campo oculto com total das diárias -->
<input type="hidden" id="total_diarias_hidden" value="<?= $dados['ordem']->total_diarias ?? 0 ?>">



<div class="form-group">
    <label><b>Outras Despesas</b></label>

    <div id="lista-despesas">
        <?php if (!empty($dados['despesas_diversas'])): ?>
            <?php foreach ($dados['despesas_diversas'] as $i => $despesa): ?>
                <div class="form-row mb-2 align-items-center linha-outra-despesa">
                    <div class="col">
                        <input type="text" name="outras_despesas[<?= $i ?>][descricao]" class="form-control"
                               placeholder="Descrição" value="<?= htmlspecialchars($despesa->descricao) ?>">
                    </div>
                    <div class="col">
                        <input type="text" name="outras_despesas[<?= $i ?>][valor]" class="form-control campo-despesa"
                               placeholder="Valor (R$)" value="<?= number_format($despesa->valor, 2, ',', '.') ?>"
                               oninput="atualizarTotalGeral()">
                    </div>
                    <div class="col-auto">
                        <button type="button" class="btn btn-sm btn-danger" onclick="this.closest('.form-row').remove(); atualizarTotalGeral();">&times;</button>
                    </div>
                </div>
            <?php endforeach; ?>
       
        <?php endif; ?>
    </div>

    <button type="button" class="btn btn-sm btn-secondary" onclick="adicionarDespesa()">Adicionar Despesa</button>
</div>







<!-- Total Geral (Diárias + Despesas) -->
    <?php if (!isset($dados['ordem'])): ?>
    <!-- Total Geral (Diárias + Despesas) - Apenas no Cadastro -->
    <div class="form-group">
        <label for="total_geral"><b>Total Geral (R$)</b></label>
        <input type="text" id="total_geral" name="total_geral" class="form-control" readonly
               value="<?= number_format($total_geral ?? 0, 2, ',', '.') ?>">
    </div>
<?php endif; ?>


<!-- Total Geral - Apenas na Edição -->
<?php if (isset($dados['ordem'])): ?>
    <div class="form-group">
        <label for="total_geral"><b>Total Diárias (R$)</b></label>
        <input type="text" id="total_geral" name="total_geral" class="form-control" readonly
               value="<?= number_format($total_geral ?? 0, 2, ',', '.') ?>">
    </div>
<?php endif; ?>


<!-- JS -->


<script>
function carregarDespesasExistentes(despesas) {
    despesas.forEach(function(despesa) {
        adicionarDespesa(despesa.descricao, despesa.valor);
    });
}

function adicionarDespesa(descricao = '', valor = '') {
    var container = document.getElementById('lista-despesas');
    var div = document.createElement('div');
    div.classList.add('input-group', 'mb-2');

    div.innerHTML = `
        <input type="text" name="descricao_despesas[]" class="form-control" placeholder="Descrição" value="${descricao}">
        <input type="number" step="0.01" name="valor_despesas[]" class="form-control" placeholder="Valor (R$)" value="${valor}">
        <div class="input-group-append">
            <button class="btn btn-danger" type="button" onclick="this.parentElement.parentElement.remove()">Remover</button>
        </div>
    `;

    container.appendChild(div);
}

// Exemplo de uso para carregar despesas no editar
// Substitua pelo seu array vindo do PHP (via json_encode)
// carregarDespesasExistentes([{descricao: 'Pedágio', valor: 50.00}, {descricao: 'Almoço', valor: 30.00}]);
</script>

<script>
document.addEventListener('DOMContentLoaded', function () {
    // Responsável Departamento
    const funcionarios = <?= json_encode($dados['funcionarios']); ?>;
    const departamentoSelect = document.getElementById('id_departamento');
    const responsavelSelect = document.getElementById('id_responsavel');
    function preencherResponsavel(departamentoId, selectedId = '') {
        responsavelSelect.innerHTML = '<option value="">Selecione o responsável</option>';
        funcionarios.forEach(func => {
            if (func.id_departamento == departamentoId) {
                let option = document.createElement('option');
                option.value = func.id_funcionario;
                option.text = func.nome_pessoa + ' (' + func.cargo + ')';
                if (selectedId && selectedId == func.id_funcionario) option.selected = true;
                responsavelSelect.appendChild(option);
            }
        });
    }
    if (departamentoSelect.value) {
        preencherResponsavel(departamentoSelect.value, "<?= isset($dados['ordem']->id_responsavel) ? $dados['ordem']->id_responsavel : '' ?>");
    }
    departamentoSelect.addEventListener('change', function () {
        preencherResponsavel(this.value);
    });

    // Adicionar Funcionários
    const btnAddFuncionario = document.getElementById('btn-add-funcionario');
    const selectFuncionarioAdd = document.getElementById('id_funcionario_add');
    const listaFuncionarios = document.getElementById('lista-funcionarios');
    let funcionariosSelecionados = [];
    <?php if (!empty($dados['ordem']->funcionarios_ids)): ?>
        funcionariosSelecionados = <?= json_encode($dados['ordem']->funcionarios_ids) ?>;
    <?php endif; ?>
    function renderizarFuncionarios() {
        listaFuncionarios.innerHTML = '';
        funcionariosSelecionados.forEach(id => {
            const func = funcionarios.find(f => f.id_funcionario == id);
            if (!func) return;
            const li = document.createElement('li');
            li.className = 'list-group-item d-flex justify-content-between align-items-center';
            li.innerHTML = `
                ${func.nome_pessoa} (${func.cargo})
                <button type="button" class="btn btn-danger btn-sm btn-remover-func" data-id="${id}">&times;</button>
                <input type="hidden" name="funcionarios[]" value="${id}">
            `;
            listaFuncionarios.appendChild(li);
        });
    }
    renderizarFuncionarios();
   btnAddFuncionario.addEventListener('click', function () {
    const id = selectFuncionarioAdd.value;

    // Bloquear caso option esteja desabilitada
    if (selectFuncionarioAdd.options[selectFuncionarioAdd.selectedIndex].disabled) {
        alert("Esse funcionário já está em viagem e não pode ser incluído em outra ordem.");
        return;
    }

    if (!id || funcionariosSelecionados.includes(id)) return;
    funcionariosSelecionados.push(id);
    renderizarFuncionarios();
    calcularValoresDiarias();
});
    listaFuncionarios.addEventListener('click', function(e) {
        if (e.target.classList.contains('btn-remover-func')) {
            const id = e.target.dataset.id;
            funcionariosSelecionados = funcionariosSelecionados.filter(fid => fid != id);
            renderizarFuncionarios();
            calcularValoresDiarias();
        }
    });

   

// Diárias por Funcionário (AJAX) usando calcular_ajax do DiariasValoresController
// Diárias por Funcionário (AJAX) usando calcular_ajax do DiariasValoresController

  
     // Diárias por Funcionário (AJAX) usando calcular_ajax do DiariasValoresController

const listaValores = document.getElementById('lista-valores-diarias');
const totalDiariasElem = document.getElementById('total-diarias');

async function calcularValoresDiarias() {
    listaValores.innerHTML = '';
    let total = 0;

    let tipoDestino = document.getElementById('tipo_destino').value;
    let cidadeDestino = document.getElementById('cidade_destino').value;
    let tipoDestinoNormalizado = tipoDestino.toLowerCase().replace(/ /g, '_') || 'outras_cidades';

    // Validação: só obriga cidade se NÃO for internacional
   if (!document.getElementById('data_saida').value ||
    !document.getElementById('data_chegada').value ||
    (tipoDestinoNormalizado !== 'viagens_internacionais' && !cidadeDestino)
) {
    totalDiariasElem.textContent = '0,00';
    calcularTotalGeral();
    return;
}


    let dataSaida = new Date(document.getElementById('data_saida').value + 'T' + (document.getElementById('hora_saida').value || '00:00'));
    let dataChegada = new Date(document.getElementById('data_chegada').value + 'T' + (document.getElementById('hora_chegada').value || '00:00'));
    let diffHoras = (dataChegada.getTime() - dataSaida.getTime()) / (1000 * 60 * 60);

    for (let id of funcionariosSelecionados) {
        let func = funcionarios.find(f => f.id_funcionario == id);
        if (!func) continue;

        let quantidade_diarias = 0;

        // Art. 2º + Art. 4º Parágrafo Único
        if (diffHoras > 4 && diffHoras <= 24) {
            quantidade_diarias = 1;
        } else if (diffHoras > 24) {
            let diasCompletos = Math.floor(diffHoras / 24);
            let restoHoras = diffHoras - (diasCompletos * 24);

            quantidade_diarias = diasCompletos;

            if (restoHoras > 8) {
                quantidade_diarias += 1;
            }
        } else {
            quantidade_diarias = 0;
        }

        let valorDiaria = 0;
        try {
            let resp = await fetch('<?= URL ?>/diariasvalores/calcular_ajax', {
                method: 'POST',
                headers: {'Content-Type': 'application/x-www-form-urlencoded'},
                body: new URLSearchParams({
                    cargo: func.cargo,
                    destino: tipoDestinoNormalizado,
                    tempo: quantidade_diarias,
                    regiao: 'padrao'
                })
            });
            let valorJson = await resp.json();
            valorDiaria = parseFloat(valorJson.valor) || 0;
        } catch(e) {
            console.error('Erro ao calcular diária:', e);
        }

        let valorFinal = 0;

        if (dataSaida.toDateString() === dataChegada.toDateString()) {
            if (diffHoras > 4 && diffHoras <= 12) {
                valorFinal = valorDiaria * 0.4;
            } else if (diffHoras > 12 && diffHoras <= 24) {
                valorFinal = valorDiaria * 0.6;
            } else {
                valorFinal = 0;
            }
        } else {
            valorFinal = valorDiaria * quantidade_diarias;
        }

        total += valorFinal;

        const li = document.createElement('li');
        li.className = 'list-group-item d-flex justify-content-between align-items-center';
        li.innerHTML = `${func.nome_pessoa} (${func.cargo}) <span>R$ ${valorFinal.toFixed(2).replace('.', ',')}</span>`;
        listaValores.appendChild(li);
    }

    totalDiariasElem.textContent = total.toFixed(2).replace('.', ',');
    calcularTotalGeral();
}

// Evento que desativa campo cidade quando Internacional
document.getElementById('tipo_destino').addEventListener('change', function() {
    let cidadeOrigem = document.getElementById('cidade_origem');
    let cidadeDestino = document.getElementById('cidade_destino');
    let tipoDestinoNormalizado = this.value.toLowerCase().replace(/ /g, '_');

    if (tipoDestinoNormalizado === 'viagens_internacionais') {
        cidadeOrigem.disabled = true;
        cidadeOrigem.removeAttribute('required');
        cidadeOrigem.value = '';
        cidadeOrigem.classList.add('bg-light');

        cidadeDestino.disabled = true;
        cidadeDestino.removeAttribute('required');
        cidadeDestino.value = '';
        cidadeDestino.classList.add('bg-light');
    } else {
        cidadeOrigem.disabled = false;
        cidadeOrigem.setAttribute('required', 'required');
        cidadeOrigem.classList.remove('bg-light');

        cidadeDestino.disabled = false;
        cidadeDestino.setAttribute('required', 'required');
        cidadeDestino.classList.remove('bg-light');
    }

    calcularValoresDiarias();
});

// para funcionar ao abrir o editar
document.getElementById('tipo_destino').dispatchEvent(new Event('change'));



// Listeners padrão
document.getElementById('cidade_destino').addEventListener('change', calcularValoresDiarias);
document.getElementById('data_saida').addEventListener('change', calcularValoresDiarias);
document.getElementById('data_chegada').addEventListener('change', calcularValoresDiarias);
document.getElementById('hora_saida').addEventListener('change', calcularValoresDiarias);
document.getElementById('hora_chegada').addEventListener('change', calcularValoresDiarias);




// Função para atualizar valores das diárias
    function atualizarValoresDiarias() {
    const dataSaida = new Date(document.getElementById('data_saida').value + 'T' + document.getElementById('hora_saida').value);
    const dataChegada = new Date(document.getElementById('data_chegada').value + 'T' + document.getElementById('hora_chegada').value);

    const diffTime = Math.abs(dataChegada - dataSaida);
    const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));  // Calcula diferença em dias

    const valorUnitario = 535;  // Exemplo: substitua pelo valor real ou calcule
    const totalDiarias = diffDays * valorUnitario;  // Multiplicação pela quantidade de diárias

    // Atualiza o valor exibido na tela para Total Diárias (Calculado)
    document.getElementById('total-diarias').textContent = `R$ ${totalDiarias.toFixed(2)}`;  // Exibe o total das diárias recalculadas

    // Atualiza o valor no campo oculto
    document.getElementById('total_diarias_banco').value = totalDiarias;  // Atualiza o valor para ser enviado ao backend

    // Atualiza o total geral
    //recalcularTotalDiarias();
    atualizarTotalGeral();  // Chama a função para atualizar o total geral com o valor das diárias
}


    // Adiciona eventos para recalcular as diárias quando as datas ou horários mudarem
    document.getElementById('data_saida').addEventListener('change', atualizarValoresDiarias);
    document.getElementById('hora_saida').addEventListener('change', atualizarValoresDiarias);
    document.getElementById('data_chegada').addEventListener('change', atualizarValoresDiarias);
    document.getElementById('hora_chegada').addEventListener('change', atualizarValoresDiarias);

    // Chama a função de atualização ao carregar a página, se os campos de data já tiverem valores
    if (document.getElementById('data_saida').value && document.getElementById('data_chegada').value) {
        atualizarValoresDiarias();
    }











    // Passagens/Despesas
    //const idsTransporteComPassagem = ['2', '3', '4', '5']; // ônibus, avião, barco, trem
    //const tipoTransporteSelect = document.getElementById('id_transporte');
    const idVeiculoSelect = document.getElementById('id_veiculo');
    function atualizarVisibilidadeCampos() {
        const veiculoSelecionado = idVeiculoSelect.value;
        const tipoTransporteSelecionado = tipoTransporteSelect.value;
        if (!veiculoSelecionado && idsTransporteComPassagem.includes(tipoTransporteSelecionado)) {
            document.getElementById('div-passagens-multiplas').style.display = 'block';
        } else {
            document.getElementById('div-passagens-multiplas').style.display = 'none';
            document.getElementById('lista-passagens').innerHTML = '';
        }
        calcularTotalGeral();
    }
    idVeiculoSelect.addEventListener('change', atualizarVisibilidadeCampos);
    tipoTransporteSelect.addEventListener('change', atualizarVisibilidadeCampos);

    window.addPassagem = function() {
        const idx = document.querySelectorAll('.linha-passagem').length;
        const div = document.createElement('div');
        div.className = "form-row align-items-center linha-passagem mb-2";
        div.innerHTML = `
            <div class="col-md-6">
                <input name="passagens[${idx}][descricao]" class="form-control" placeholder="Descrição">
            </div>
            <div class="col-md-4">
                <input name="passagens[${idx}][valor]" class="form-control valor-passagem" type="number" step="0.01" placeholder="Valor (R$)" oninput="calcularTotalGeral()">
            </div>
            <div class="col-md-2">
                <button type="button" class="btn btn-danger btn-sm" onclick="this.parentNode.parentNode.remove(); calcularTotalGeral();">&times;</button>
            </div>
        `;
        document.getElementById('lista-passagens').appendChild(div);
    }
    window.addOutraDespesa = function() {
        const idx = document.querySelectorAll('.linha-outra-despesa').length;
        const div = document.createElement('div');
        div.className = "form-row align-items-center linha-outra-despesa mb-2";
        div.innerHTML = `
            <div class="col-md-6">
                <input name="outras_despesas[${idx}][descricao]" class="form-control" placeholder="Descrição">
            </div>
            <div class="col-md-4">
                <input name="outras_despesas[${idx}][valor]" class="form-control valor-outra-despesa" type="number" step="0.01" placeholder="Valor (R$)" oninput="calcularTotalGeral()">
            </div>
            <div class="col-md-2">
                <button type="button" class="btn btn-danger btn-sm" onclick="this.parentNode.parentNode.remove(); calcularTotalGeral();">&times;</button>
            </div>
        `;
        document.getElementById('lista-outras-despesas').appendChild(div);
    }
  window.calcularTotalGeral = function () {
    let totalDiarias = 0;

    // Verifica e registra o valor das diárias
    if (totalDiariasElem && totalDiariasElem.textContent && totalDiariasElem.textContent.trim() !== "R$ 0,00") {
        const valorTexto = totalDiariasElem.textContent.replace('R$', '').trim();
        totalDiarias = normalizeNumeroBR(valorTexto);
        console.log("Total Diárias Calculado: ", totalDiarias); // Verificando o valor das diárias
    } else {
        const totalBancoElem = document.getElementById('total_diarias_banco');
        if (totalBancoElem && totalBancoElem.value.trim() !== '') {
            totalDiarias = normalizeNumeroBR(totalBancoElem.value);
            console.log("Total Diárias Banco: ", totalDiarias); // Verificando o valor das diárias do banco
        }
    }

    let totalPassagens = 0;
    document.querySelectorAll('.valor-passagem').forEach(input => {
        let valorPassagem = normalizeNumeroBR(input.value);
        totalPassagens += valorPassagem;
        console.log("Passagem: ", valorPassagem); // Verificando cada passagem individualmente
    });

    let totalDespesas = 0;
    document.querySelectorAll('.valor-outra-despesa').forEach(input => {
        let valorDespesa = normalizeNumeroBR(input.value);
        totalDespesas += valorDespesa;
        console.log("Despesa: ", valorDespesa); // Verificando cada despesa individualmente
    });

    // Calculando total geral
    const totalGeral = totalDiarias + totalPassagens + totalDespesas;
    console.log("Total Geral: ", totalGeral); // Verificando o total geral antes de exibir

    const campoTotalGeral = document.getElementById('total_geral');
    if (campoTotalGeral) {
        campoTotalGeral.value = totalGeral.toLocaleString('pt-BR', {
            minimumFractionDigits: 2,
            maximumFractionDigits: 2
        });
    }
};

function normalizeNumeroBR(valor) {
    if (typeof valor !== 'string') return 0;
    if (valor.includes(',')) {
        return parseFloat(valor.replace(/\./g, '').replace(',', '.')) || 0;
    }
    return parseFloat(valor) || 0;
}



});
</script>













</script>
<!-- GOOGLE MAPS: SEM CONFLITO, FUNÇÃO GLOBAL -->
<script>
function initMap() {
    var directionsService = new google.maps.DirectionsService();
    var directionsRenderer = new google.maps.DirectionsRenderer();
    var map = new google.maps.Map(document.getElementById("map"), {
        zoom: 7,
        center: { lat: -15.77972, lng: -47.92972 }
    });
    directionsRenderer.setMap(map);

    var cidadeOrigem = document.getElementById('cidade_origem');
    var cidadeDestino = document.getElementById('cidade_destino');

    function calcularRota() {
        if (cidadeOrigem.value && cidadeDestino.value) {
            directionsService.route({
                origin: cidadeOrigem.options[cidadeOrigem.selectedIndex].text,
                destination: cidadeDestino.options[cidadeDestino.selectedIndex].text,
                travelMode: google.maps.TravelMode.DRIVING
            }, function(response, status) {
                if (status === "OK") {
                    directionsRenderer.setDirections(response);
                    var route = response.routes[0].legs[0];
                    document.getElementById('km_percorrido').value = Math.round(route.distance.value / 1000);
                } else {
                    document.getElementById('km_percorrido').value = '';
                }
            });
        }
    }

    cidadeOrigem.addEventListener('change', calcularRota);
    cidadeDestino.addEventListener('change', calcularRota);

    // Inicializa com valores já existentes
    calcularRota();
}
window.initMap = initMap;
</script>

<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCC0oW1zoCT5edKUlzq7_JH_KUGsyvBHrU&callback=initMap&libraries=places" async defer></script>


<script>
document.addEventListener('DOMContentLoaded', function () {
    const kmInput = document.getElementById('km_percorrido');
    const veiculoSelect = document.getElementById('id_veiculo');
    const combustivelInput = document.getElementById('combustivel_necessario');

    function calcularCombustivel() {
        if (!kmInput || !veiculoSelect || !combustivelInput) return;

        const kmPercorridoStr = kmInput.value.replace(',', '.');
        const kmPercorrido = parseFloat(kmPercorridoStr) || 0;

        const selectedOption = veiculoSelect.options[veiculoSelect.selectedIndex];
        const kmPorLitroStr = selectedOption?.dataset.km_litro?.replace(',', '.') || '0';
        const kmPorLitro = parseFloat(kmPorLitroStr) || 0;

        if (kmPercorrido > 0 && kmPorLitro > 0) {
            const litros = kmPercorrido / kmPorLitro;
            combustivelInput.value = litros.toFixed(2).replace('.', ',');
        } else {
            combustivelInput.value = '';
        }
    }

    if (kmInput) {
        kmInput.addEventListener('input', calcularCombustivel);
    }

    if (veiculoSelect) {
        veiculoSelect.addEventListener('change', calcularCombustivel);
    }

    // Tenta calcular ao carregar a página
    calcularCombustivel();
});
</script>









<script>
document.addEventListener('DOMContentLoaded', function () {
    // Preencher outras despesas já existentes
    <?php if (!empty($dados['despesas_diversas'])): ?>
        let despesasExistentes = <?= json_encode($dados['despesas_diversas']) ?>;
        despesasExistentes.forEach((desp, idx) => {
            const div = document.createElement('div');
            div.className = "form-row align-items-center linha-outra-despesa mb-2";
            div.innerHTML = `
                <div class="col-md-6">
                    <input name="outras_despesas[${idx}][descricao]" class="form-control" placeholder="Descrição" value="${desp.descricao}">
                </div>
                <div class="col-md-4">
                    <input name="outras_despesas[${idx}][valor]" class="form-control valor-outra-despesa" type="number" step="0.01" placeholder="Valor (R$)" value="${parseFloat(desp.valor).toFixed(2)}" oninput="calcularTotalGeral()">
                </div>
                <div class="col-md-2">
                    <button type="button" class="btn btn-danger btn-sm" onclick="this.parentNode.parentNode.remove(); calcularTotalGeral();">&times;</button>
                </div>
            `;
            document.getElementById('lista-outras-despesas').appendChild(div);
        });
    <?php endif; ?>
});
</script>

<script>

document.addEventListener('DOMContentLoaded', function () {
    const dataSaidaInput = document.getElementById('data_saida');
    const dataChegadaInput = document.getElementById('data_chegada');

    function validarDatas() {
        const dataSaida = new Date(dataSaidaInput.value);
        const dataChegada = new Date(dataChegadaInput.value);

        if (dataSaidaInput.value && dataChegadaInput.value && dataChegada < dataSaida) {
            Swal.fire({
                icon: 'error',
                title: 'Data inválida',
                text: 'A Data Final não pode ser anterior à Data Inicial.',
                confirmButtonText: 'Ok'
            });
            dataChegadaInput.value = '';
            dataChegadaInput.focus();
        }
    }

    dataSaidaInput.addEventListener('change', validarDatas);
    dataChegadaInput.addEventListener('change', validarDatas);
});


</script>

<script>
document.addEventListener('DOMContentLoaded', () => {
  const statusSelect = document.getElementById('id_status');
  const campoObsCancelamento = document.getElementById('observacao_cancelamento');
  const btnSalvar = document.querySelector('button[type="submit"]');
  const todosCampos = document.querySelectorAll('input, select, textarea, button');

  function atualizarFormulario() {
    const status = statusSelect.options[statusSelect.selectedIndex].text.toUpperCase();

    if (status === 'CANCELADA') {
      todosCampos.forEach(el => {
        if (el.type === 'submit' || el === statusSelect || el === campoObsCancelamento) return;

        if (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA') {
          el.readOnly = true;
        } else if (el.tagName === 'SELECT') {
          // para select, desativa mas cria hidden para garantir envio
          const hidden = document.createElement('input');
          hidden.type = 'hidden';
          hidden.name = el.name;
          hidden.value = el.value;
          el.parentNode.insertBefore(hidden, el.nextSibling);
          el.disabled = true;
        } else {
          el.disabled = true;
        }
      });

      campoObsCancelamento.readOnly = false;
      campoObsCancelamento.classList.remove('bg-light');

      Swal.fire({
        icon: 'info',
        title: 'Ordem Cancelada',
        text: 'A ordem está cancelada. Só é possível editar a observação e salvar.',
        confirmButtonText: 'Ok'
      });

    } else {
      todosCampos.forEach(el => {
        el.disabled = false;
        if (el.tagName === 'INPUT' || el.tagName === 'TEXTAREA') {
          el.readOnly = false;
        }
      });
      // remove inputs hidden extras criados antes
      document.querySelectorAll('input[type="hidden"]').forEach(h => {
        if (h.dataset.generated === 'true') h.remove();
      });
    }
  }

  statusSelect.addEventListener('change', atualizarFormulario);
  atualizarFormulario();
});
</script>
<script>
document.addEventListener('DOMContentLoaded', () => {
  const statusSelect = document.getElementById('id_status');
  const campoObsCancelamentoDiv = document.getElementById('campo_observacao_cancelamento');

  function atualizarCampoObs() {
    const status = statusSelect.options[statusSelect.selectedIndex].text.toUpperCase();
    if (status === 'CANCELADA') {
      campoObsCancelamentoDiv.style.display = 'block';
    } else {
      campoObsCancelamentoDiv.style.display = 'none';
    }
  }

  // Chama na carga inicial
  atualizarCampoObs();

  // E toda vez que mudar o select
  statusSelect.addEventListener('change', atualizarCampoObs);
});
</script>
<script>
// Função para atualizar o total geral com base nas diárias e outras despesas
// Função para calcular e atualizar o total geral com base nas diárias e nas outras despesas
function atualizarTotalGeral() {
    let totalDiarias = 0;
    let totalDespesas = 0;

    // Atualiza o valor das diárias
    const totalDiariasElem = document.getElementById('total-diarias');
    if (totalDiariasElem) {
        totalDiarias = parseFloat(totalDiariasElem.textContent.replace('R$', '').trim().replace(',', '.')) || 0;
    }

    // Atualiza o valor das despesas
    document.querySelectorAll('.campo-despesa').forEach(input => {
        let valorDespesa = parseFloat(input.value.replace(',', '.')) || 0;
        totalDespesas += valorDespesa;
    });

    // Calcula o total geral (diárias + despesas)
    const totalGeral = totalDiarias + totalDespesas;

    // Atualiza o campo Total Geral
    const totalGeralElem = document.getElementById('total_geral');
    if (totalGeralElem) {
        totalGeralElem.value = totalGeral.toLocaleString('pt-BR', { minimumFractionDigits: 2, maximumFractionDigits: 2 });
    }

    // Atualiza o valor no banco (campo oculto)
    const totalDiariasBancoElem = document.getElementById('total_diarias_banco');
    if (totalDiariasBancoElem) {
        totalDiariasBancoElem.value = totalDiarias.toFixed(2);
    }

    // Atualiza o total de diárias no campo Total Diárias Calculado
    const totalDiariasCalculadoElem = document.getElementById('total-diarias');
    if (totalDiariasCalculadoElem) {
        totalDiariasCalculadoElem.textContent = `R$ ${totalDiarias.toFixed(2).replace('.', ',')}`;
    }
}

// Chama a função sempre que um valor for alterado
document.getElementById('total_diarias').addEventListener('change', atualizarTotalGeral);
document.querySelectorAll('.campo-despesa').forEach(input => {
    input.addEventListener('input', atualizarTotalGeral);
});


// Escutadores para recalcular sempre que algum valor for alterado (campo de despesas, diárias, etc)
document.querySelectorAll('.valor-outra-despesa').forEach(input => {
    input.addEventListener('input', function() {
        atualizarTotalGeral();
    });
});

// Recalcular o total de diárias sempre que a página for carregada
window.addEventListener('DOMContentLoaded', function() {
    recalcularTotalDiarias();
    atualizarTotalGeral();
});


// Escutadores para recalcular sempre que um valor for alterado (campo de despesas, diárias, etc)
document.querySelectorAll('.valor-outra-despesa').forEach(input => {
    input.addEventListener('input', function() {
        atualizarTotalGeral();
    });
});

// Recalcular o total de diárias assim que a página for carregada
window.addEventListener('DOMContentLoaded', function() {
    recalcularTotalDiarias();
    atualizarTotalGeral();
});


function adicionarDespesa() {
    let index = document.querySelectorAll('.campo-despesa').length;

    let row = document.createElement('div');
    row.className = 'form-row mb-2';
    row.innerHTML = `
        <div class="col">
            <input type="text" name="outras_despesas[${index}][descricao]" class="form-control" placeholder="Descrição">
        </div>
        <div class="col">
            <input type="text" name="outras_despesas[${index}][valor]" class="form-control campo-despesa" placeholder="Valor (R$)" oninput="atualizarTotalGeral()">
        </div>
    `;
    document.querySelector('.form-group').insertBefore(row, document.querySelector('.form-group button'));
}
</script>
<script>
function adicionarDespesa() {
    let index = document.querySelectorAll('#lista-despesas .form-row').length;

    const row = document.createElement('div');
    row.className = 'form-row mb-2 align-items-center linha-outra-despesa';

    row.innerHTML = `
        <div class="col">
            <input type="text" name="outras_despesas[${index}][descricao]" class="form-control" placeholder="Descrição">
        </div>
        <div class="col">
            <input type="text" name="outras_despesas[${index}][valor]" class="form-control campo-despesa"
                   placeholder="Valor (R$)" oninput="atualizarTotalGeral()">
        </div>
        <div class="col-auto">
            <button type="button" class="btn btn-sm btn-danger" onclick="this.closest('.form-row').remove(); atualizarTotalGeral();">&times;</button>
        </div>
    `;

    const container = document.getElementById('lista-despesas');
    container.appendChild(row);
}

</script>


<script>
    const tipoTransporteSelect = document.getElementById('id_transporte');
    const veiculoSelect = document.getElementById('id_veiculo');
    const combustivelInput = document.getElementById('combustivel_necessario');  // Altere o ID conforme necessário
      
    function atualizarVisibilidadeCampos() {
        const tipoTransporteSelecionado = tipoTransporteSelect.value;
        const tiposTransporteSemVeiculo = ['2', '3', '4', '5'];  // Ids dos tipos de transporte: ônibus, avião, barco, trem

        if (tiposTransporteSemVeiculo.includes(tipoTransporteSelecionado)) {
            // Desativa os campos
            veiculoSelect.disabled = true;
            combustivelInput.disabled = true;
            km_inicial_ordem.disabled = true;
            km_final_ordem.disabled = true;
        } else {
            // Ativa os campos
            veiculoSelect.disabled = false;
            combustivelInput.disabled = false;
             km_inicial_ordem.disabled = false;
            km_final_ordem.disabled = false;
        }
    }

    // Adiciona o evento de mudança de tipo de transporte
    tipoTransporteSelect.addEventListener('change', atualizarVisibilidadeCampos);

    // Chama a função ao carregar a página para garantir que a visibilidade dos campos esteja correta
    atualizarVisibilidadeCampos();
</script>

<script>
function toggleTotalDiariasCalculado() {
    // Verifica se estamos na tela de cadastro (não tem a classe 'ordem-edit')
    if (!document.querySelector('.ordem-edit')) {
        // Mostra o campo "Total Diárias (Calculado)" somente no cadastro
        const totalDiariasElem = document.getElementById('total-diarias');
        const totalDiariasContainer = totalDiariasElem ? totalDiariasElem.closest('div') : null;

        if (totalDiariasContainer) {
            totalDiariasContainer.style.display = 'block'; // Exibe o campo
        }
    } else {
        // Esconde o campo "Total Diárias (Calculado)" na edição
        const totalDiariasElem = document.getElementById('total-diarias');
        const totalDiariasContainer = totalDiariasElem ? totalDiariasElem.closest('div') : null;

        if (totalDiariasContainer) {
            totalDiariasContainer.style.display = 'none'; // Esconde o campo
        }
    }
}

// Chama a função quando a página for carregada
document.addEventListener('DOMContentLoaded', function() {
    toggleTotalDiariasCalculado();
});
</script>



<script>

function atualizarTotais() {
    let totalDiarias = 0;
    let totalDespesas = 0;

    // Verifica e registra o valor das diárias
    const totalDiariasElem = document.getElementById('total-diarias');
    if (totalDiariasElem) {
        totalDiarias = parseFloat(totalDiariasElem.textContent.replace('R$', '').replace(',', '.')) || 0;
    }

    // Atualiza o valor das despesas
    document.querySelectorAll('.campo-despesa').forEach(input => {
        let valorDespesa = parseFloat(input.value.replace(',', '.')) || 0;
        totalDespesas += valorDespesa;
    });

    // Atualizar Total Diárias no campo
    const totalDiariasInput = document.getElementById('total_diarias');
    if (totalDiariasInput) {
        totalDiariasInput.value = totalDiarias.toFixed(2).replace('.', ',');
    }

    // Atualizar Total Geral (Diárias + Despesas)
    const totalGeral = totalDiarias + totalDespesas;
    const totalGeralInput = document.getElementById('total_geral');
    if (totalGeralInput) {
        totalGeralInput.value = totalGeral.toFixed(2).replace('.', ',');
    }
}

document.addEventListener('DOMContentLoaded', function() {
    atualizarTotais();  // Calcular ao carregar a página

    // Recalcular quando uma despesa for alterada
    document.querySelectorAll('.campo-despesa').forEach(input => {
        input.addEventListener('input', function() {
            atualizarTotais();  // Recalcular os totais quando despesas forem alteradas
        });
    });

    // Se tiver um campo de diárias, garantir que ele também seja escutado
    const totalDiariasElem = document.getElementById('total-diarias');
    if (totalDiariasElem) {
        totalDiariasElem.addEventListener('input', function() {
            atualizarTotais();  // Recalcular quando o campo de diárias for alterado
        });
    }
});



</script>

<script>
document.addEventListener("DOMContentLoaded", function () {
    const statusSelect = document.getElementById("id_status");
    const wrapper = document.getElementById("observacao-cancelamento-wrapper");
    const textarea = document.getElementById("observacao_cancelamento");
    const label = document.getElementById("label-observacao");

    function atualizarCampoObservacao() {
    const valor = parseInt(statusSelect.value);
    if (valor === 6 || valor === 7) {
        wrapper.style.display = "block";
        label.textContent = (valor === 7) ? "Observação da Rejeição" : "Observação do Cancelamento";
        textarea.readOnly = false; // SEM readonly
    } else {
        wrapper.style.display = "none";
        textarea.value = ""; // limpa se esconder
    }
}

    statusSelect.addEventListener("change", atualizarCampoObservacao);
    atualizarCampoObservacao(); // executa na carga inicial
});
</script>
<script>
document.addEventListener("DOMContentLoaded", function () {
    const tipoTransporteSelect = document.getElementById('id_transporte');
    const veiculoSelect = document.getElementById('id_veiculo');
    const combustivelInput = document.getElementById('combustivel_necessario');
    const km_inicial_ordemInput = document.getElementById('km_inicial_ordem');
    const km_final_ordemInput = document.getElementById('km_final_ordem');

    function atualizarCamposTransporte() {
        const transporteSelecionado = parseInt(tipoTransporteSelect.value);
        const deveBloquear = transporteSelecionado !== 1;

        veiculoSelect.disabled = deveBloquear;
        combustivelInput.readOnly = true;
        combustivelInput.disabled = deveBloquear;
        km_inicial_ordemInput.disabled = deveBloquear;
        km_final_ordemInput.disabled = deveBloquear;

        // Visual: aplica bg-light se bloqueado
        if (deveBloquear) {
            veiculoSelect.value = "";
            combustivelInput.value = "";
            km_inicial_ordemInput.value = "";
            km_final_ordemInput.value = "";

            veiculoSelect.classList.add("bg-light");
            km_inicial_ordemInput.classList.add("bg-light");
            km_final_ordemInput.classList.add("bg-light");
        } else {
            veiculoSelect.classList.remove("bg-light");
            km_inicial_ordemInput.classList.remove("bg-light");
            km_final_ordemInput.classList.remove("bg-light");
        }
    }

    tipoTransporteSelect.addEventListener("change", atualizarCamposTransporte);
    atualizarCamposTransporte(); // Executa ao carregar
});

</script>

<script>
document.addEventListener('DOMContentLoaded', function () {
    const kmInicialInput = document.getElementById('km_inicial_ordem');
    const kmFinalInput = document.getElementById('km_final_ordem');
    const form = kmFinalInput.closest('form'); // assume que o botão está no mesmo formulário

    function validarKM() {
        const kmInicial = parseFloat(kmInicialInput.value);
        const kmFinal = parseFloat(kmFinalInput.value);

        if (!isNaN(kmInicial) && !isNaN(kmFinal)) {
            if (kmFinal < kmInicial) {
                Swal.fire({
                    icon: 'error',
                    title: 'Erro de Quilometragem',
                    text: 'O KM Final não pode ser menor que o KM Inicial.',
                });

                kmFinalInput.value = '';
                kmFinalInput.focus();
                return false;
            }
        }
        return true;
    }

    // Valida automaticamente ao alterar KM final
    kmFinalInput.addEventListener('change', validarKM);

    // Valida novamente ao enviar o formulário
    if (form) {
        form.addEventListener('submit', function (e) {
            if (!validarKM()) {
                e.preventDefault(); // impede o envio
            }
        });
    }
});
</script>
