/** * *Realizar un seguimiento a una orden de servicio existente. Puede usarse para agregar detalles a una orden pero no para editar detalles previos. Puede ser que se haya hecho un abono * * @param estado string Estado en el que se encuentra actualmente la orden * @param id_localizacion int Id de la sucursal en la que se encuentra actualmente la orden, se usara un -1 para indicar que esta en movimiento * @param id_orden_de_servicio int Id de la orden a darle seguimiento **/ public static function SeguimientoOrden($id_orden_de_servicio, $abono = null, $id_localizacion = null, $nota = null) { Logger::log("Creando nuevo seguimiento de orden..."); if (is_null($id_orden_de_servicio)) { throw new InvalidDataException("id_orden_de_servicio is a required field"); } //Se obtiene al usuario de la sesion $sesion = SesionController::Actual(); $id_usuario = $sesion["id_usuario"]; $id_sucursal = $sesion["id_sucursal"]; //Se validan los parametros recibidos /*$validar = self::validarParametrosSeguimiento(null, $id_orden_de_servicio, $id_localizacion, $nota); if(is_string($validar)) { Logger::error($validar); throw new Exception($validar); }*/ $seguimiento_de_servicio = new SeguimientoDeServicio(array("id_localizacion" => $id_localizacion, "id_orden_de_servicio" => $id_orden_de_servicio, "estado" => $nota, "id_usuario" => $id_usuario, "id_sucursal" => $id_sucursal, "fecha_seguimiento" => time())); DAO::transBegin(); try { SeguimientoDeServicioDAO::save($seguimiento_de_servicio); } catch (Exception $e) { DAO::transRollback(); Logger::error($e->getMessage()); throw new InvalidDatabaseOperationException("No se pudo crear el seguimiento de servicio"); } DAO::transEnd(); Logger::log("Seguimiento creado exitosamente"); return array("id_seguimiento" => $seguimiento_de_servicio->getIdSeguimientoDeServicio()); }