/// <summary> /// Método Público encargado de Actualizar la Confirmación del Evento /// </summary> /// <param name="tipo">Tipo de Confirmación</param> /// <param name="fecha">Fecha de Actualización</param> /// <param name="tipo_actualizacion_fin">Tipo de Actualización</param> /// <param name="id_usuario">Usuario que Actualiza el Registro</param> /// <returns></returns> public RetornoOperacion ActualizaConfirmacionEvento(TipoConfirmacion tipo, DateTime fecha, TipoActualizacion tipo_actualizacion_fin, int id_usuario) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Inicializando Transacción using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Invocando Método de Actualización result = this.actualizaRegistros(this._id_detalle_acceso_patio, this._id_tipo_evento, this._id_entidad_patio, this._id_zona_patio, tipo == TipoConfirmacion.Inicio ? fecha : this._fecha_inicio, tipo == TipoConfirmacion.Fin ? fecha : this._fecha_fin, this._referencia, this._id_tipo_actualizacion_inicio, (byte)tipo_actualizacion_fin, tipo == TipoConfirmacion.Inicio ? true : this._bit_confirmacion_asignacion_ini, tipo == TipoConfirmacion.Fin ? true : this._bit_confirmacion_asignacion_fin, this._id_operador_asignado, this._fecha_asignacion, this._fecha_confirmacion, this._bit_inicio_anden, this._bit_fin_anden, this._fecha_inicio_anden, this._fecha_fin_anden, this._id_operador_fin, id_usuario, this._habilitar); //Validando que se actualizara el Registro if (result.OperacionExitosa) { //Obteniendo Evento int id_evt = result.IdRegistro; //Instanciando Entidad Patio using (EntidadPatio ep = new EntidadPatio(this._id_entidad_patio)) { //Instanciando Entidad de Patio(Anden/Cajon) if (ep.id_entidad_patio > 0) { //Actualizando Entidad result = ep.ActualizaEventoActualEntidadPatio(ep.estatus, ep.estatus_carga, fecha, ep.id_evento, id_usuario); } //Validando que la Operación haya sido Exitosa if (result.OperacionExitosa) { //Completando Transacción trans.Complete(); } } } } //Devolviendo Objeto de Retorno return(result); }
/// <summary> /// /// </summary> /// <param name="id_acceso_salida"></param> /// <param name="id_usuario"></param> /// <returns></returns> public RetornoOperacion ActualizaSalidaDetalleMobil(int id_acceso_salida, int id_usuario) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Inicializando Transacción using (TransactionScope trans = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Instanciando Acceso de Salida using (AccesoPatio ap = new AccesoPatio(id_acceso_salida)) { //Validando que exista el Acceso de Patio de Salida if (ap.id_acceso_patio > 0) { //Obteniendo Fecha Maxima de los Eventos del Detalle DateTime fec_max = ObtieneFechaMaximaEvento(this._id_detalle_acceso_patio); //Validando que la fecha de Salida del Acceso sea Superior a la del Evento if (DateTime.Compare(ap.fecha_acceso, fec_max) >= 0) { //Invocando Método de Actualización result = this.actualizaRegistros(this._id_acceso_entrada, id_acceso_salida, this._id_transportista, EstatusAcceso.Fuera, EstatusPatio.SinAsignacion, 0, 0, this._bit_cargado, ap.fecha_acceso, this._id_tipo_detalle_acceso, this._descripcion_detalle_acceso, this._identificacion_detalle_acceso, this._id_unidad_operador, id_usuario, this._habilitar); //Validando que la Operación fuese exitosa if (result.OperacionExitosa) { //Obteniendo Eventos using (DataTable dtEventos = EventoDetalleAcceso.ObtieneEventosDetalle(this._id_detalle_acceso_patio)) { //Validando que existen Registros if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtEventos)) { //Recorriendo Filas foreach (DataRow dr in dtEventos.Rows) { //Instanciando Evento using (EventoDetalleAcceso eda = new EventoDetalleAcceso(Convert.ToInt32(dr["Id"]))) { //Validando que exista el Evento if (eda.id_evento_detalle_acceso > 0) { //Terminando Evento result = eda.TerminaEventoDetalle(ap.fecha_acceso, EventoDetalleAcceso.TipoActualizacion.Mobil, id_usuario); } else//Instanciando Excepcion { result = new RetornoOperacion("No se puede Terminar el Evento"); } //Validando que haya terminado el Evento if (result.OperacionExitosa) { //Instanciando Entidad de Patio using (EntidadPatio ep = new EntidadPatio(eda.id_entidad_patio)) { //Validando que Exista la if (ep.id_entidad_patio > 0) { //Actualiza Evento Actual result = ep.ActualizaEventoActualEntidadPatio(EntidadPatio.Estatus.Vacio, EntidadPatio.EstatusCarga.Ninguno, ap.fecha_acceso, 0, id_usuario); } else//Instanciando Excepcion { result = new RetornoOperacion("No se puede Actualizar la Entidad"); } //Si la Operación no fue Exitosa if (!result.OperacionExitosa) { //Finalizando Ciclo break; } } } } } } //Validando que la Operación sea Exitosa if (result.OperacionExitosa) { //Completando Transacción trans.Complete(); } } } } else { //Instanciando Excepcion result = new RetornoOperacion("La Fecha de Salida debe ser superior a la del Ultimo Evento"); } } else { //Instanciando Excepcion result = new RetornoOperacion("No existe el acceso de Salida"); } } } //Devolviendo Resultado Obtenido return(result); }