<?php
session_start();
require 'config.php';
if(!isset($_SESSION["usuario"])){header("Location: login.php");exit;}

$id    = (int)($_POST['id_orden_serv']??0);
$nuevo = trim($_POST['nuevo_estado']??'');
$permitidos = ['CONFIRMADO','PAGADO','ENTREGADO FINAL'];

if($id && in_array($nuevo,$permitidos)){
    $col_fecha = [
        'CONFIRMADO'     => 'fecha_confirmado',
        'PAGADO'         => 'fecha_pagado',
        'ENTREGADO FINAL'=> 'fecha_entregado',
    ];
    $col = $col_fecha[$nuevo] ?? null;
    if($col){
        try{
            $pdo->prepare("UPDATE ordenes_de_servicio SET estado=?, $col=NOW() WHERE id_orden_serv=?")
                ->execute([$nuevo,$id]);
        }catch(Exception $e){
            // columna puede no existir aun, solo actualizar estado
            $pdo->prepare("UPDATE ordenes_de_servicio SET estado=? WHERE id_orden_serv=?")
                ->execute([$nuevo,$id]);
        }
    } else {
        $pdo->prepare("UPDATE ordenes_de_servicio SET estado=? WHERE id_orden_serv=?")
            ->execute([$nuevo,$id]);
    }
}
header("Location: ver_orden.php?id=$id");
exit;
