예제 #1
0
 /**
  *
  *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());
 }