コード例 #1
0
        /// <summary>
        /// Realiza el registro de un encabezado de acceso y sus detalles (entidades que accesan)
        /// </summary>
        /// <param name="id_patio">Ubicación de Patio</param>
        /// <param name="id_acceso">Id de Acceso del Patio (elemento de patio)</param>
        /// <param name="fecha_hora">Fecha y hora de acceso en formato yyyy-MM-ddTHH:mm:ss</param>
        /// <param name="entidades_xml">Conjunto de entidades que accesan al patio. Validar contra esquema correspondiente</param>
        /// <param name="id_usuario">Usuario que actualiza el Registro</param>
        /// <returns></returns>
        public string RegistraEntradaPatio(int id_patio, int id_acceso, string fecha_hora, string entidades_xml, int id_usuario)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion resultado = null;

            //Obteniendo Fecha
            DateTime fecha = DateTime.MinValue;

            DateTime.TryParse(fecha_hora, out fecha);

            //Validando que el Patio exista
            if (id_patio > 0)
            {
                //Validando que el Acceso exista
                if (id_acceso > 0)
                {
                    //Validando que exista la Fecha
                    if (fecha != DateTime.MinValue)
                    {
                        try
                        {   //Declarando Objeto de Entidades
                            XDocument documento = XDocument.Parse(entidades_xml);

                            //Validando si tiene Entidades
                            if (documento.Root.HasElements)
                            {
                                //Inicializando Transaccion
                                using (TransactionScope transaccion = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
                                {
                                    //Obteniendo Entidades
                                    IEnumerable <XElement> entidades = documento.Root.Elements();

                                    //Insertando Acceso
                                    resultado = AccesoPatio.InsertaAccesoPatio(id_patio, id_acceso, AccesoPatio.TipoActualizacion.Mobil,
                                                                               AccesoPatio.TipoAcceso.Entrada, fecha, "", id_usuario);

                                    //Validando que el Acceso se Insertara correctamente
                                    if (resultado.OperacionExitosa)
                                    {
                                        //Obteniendo Acceso de Entrada
                                        int idAccesoEntrada = resultado.IdRegistro;

                                        //Recorriendo Ciclo
                                        foreach (XElement entidad in entidades)
                                        {
                                            //Insertando Detalle de Acceso
                                            resultado = DetalleAccesoPatio.InsertaDetalleAccesoPatio(idAccesoEntrada, 0, Convert.ToInt32(entidad.Attribute("idTransportista").Value),
                                                                                                     0, 0, Convert.ToBoolean(entidad.Attribute("cargado").Value), fecha, Convert.ToByte(entidad.Attribute("idTipo").Value),
                                                                                                     entidad.Attribute("descripcion").Value, entidad.Attribute("identificacion").Value, 0, id_usuario);

                                            //Validando si se Inserto el Detalle
                                            if (!resultado.OperacionExitosa)
                                            {
                                                break;
                                            }
                                        }

                                        //Validando que la Operación fuese Exitosa
                                        if (resultado.OperacionExitosa)
                                        {
                                            //Instanciando Acceso de Patio
                                            resultado = new RetornoOperacion(idAccesoEntrada);

                                            //Completando Transacción
                                            transaccion.Complete();
                                        }
                                    }
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            //Devolviendo Excepcion
                            resultado = new RetornoOperacion(e.Message);
                        }
                    }
                    else//Instanciando Excepción
                    {
                        resultado = new RetornoOperacion("La Fecha es invalida");
                    }
                }
                else//Instanciando Excepción
                {
                    resultado = new RetornoOperacion("El Acceso es invalido");
                }
            }
            else//Instanciando Excepción
            {
                resultado = new RetornoOperacion("El Patio es invalido");
            }

            //Devolviendo resultado Obtenido
            return(resultado.ToXMLString());
        }
コード例 #2
0
        /// <summary>
        /// Realiza el registro de un encabezado de acceso y actualizar sus detalles (entidades que salen)
        /// </summary>
        /// <param name="id_patio">Id de Patio</param>
        /// <param name="id_acceso">Id de Acceso del Patio (elemento de patio)</param>
        /// <param name="fecha_hora">Fecha y hora de salida en formato yyyy-MM-ddTHH:mm:ss</param>
        /// <param name="entidades_xml">Conjunto de entidades que accesan al patio. Validar contra esquema correspondiente</param>
        /// <param name="id_usuario">Usuario que actualiza el Registro</param>
        /// <returns></returns>
        public string RegistraSalidaPatio(int id_patio, int id_acceso, string fecha_hora, string entidades_xml, int id_usuario)
        {
            //Declarando Objeto de Retorno
            RetornoOperacion resultado = null;

            //Validando que exista el Patio
            if (id_patio > 0)
            {
                //Validando que exista el Acceso
                if (id_acceso > 0)
                {
                    //Obteniendo Fecha y Hora
                    DateTime fec_sal;
                    DateTime.TryParse(fecha_hora, out fec_sal);

                    //Validando que exista la Fecha
                    if (fec_sal != DateTime.MinValue)
                    {
                        try
                        {   //Declarando Objeto de Entidades
                            XDocument documento = XDocument.Parse(entidades_xml);

                            //Validando si tiene Entidades
                            if (documento.Root.HasElements)
                            {
                                //Inicializando Transaccion
                                using (TransactionScope transaccion = TSDK.Datos.Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted))
                                {
                                    //Obteniendo Entidades
                                    IEnumerable <XElement> entidades = documento.Root.Elements();

                                    //Insertando Acceso
                                    resultado = AccesoPatio.InsertaAccesoPatio(id_patio, id_acceso, AccesoPatio.TipoActualizacion.Mobil,
                                                                               AccesoPatio.TipoAcceso.Salida, fec_sal, "", id_usuario);

                                    //Validando que el Acceso se Insertara correctamente
                                    if (resultado.OperacionExitosa)
                                    {
                                        //Obteniendo Acceso de Entrada
                                        int idAccesoSalida = resultado.IdRegistro;

                                        //Recorriendo Ciclo
                                        foreach (XElement entidad in entidades)
                                        {
                                            //Instanciando Detalle de Acceso
                                            using (DetalleAccesoPatio dap = new DetalleAccesoPatio(Convert.ToInt32(entidad.Value)))
                                            {
                                                //Validando que exista el Detalle
                                                if (dap.id_detalle_acceso_patio > 0)
                                                {
                                                    //Actualizando Salida del Detalle
                                                    resultado = dap.ActualizaSalidaDetalleMobil(idAccesoSalida, id_usuario);

                                                    //Validando si se Inserto el Detalle
                                                    if (!resultado.OperacionExitosa)
                                                    {
                                                        break;
                                                    }
                                                }
                                                else
                                                {
                                                    break;
                                                }
                                            }
                                        }

                                        //Validando que el Acceso se Insertara correctamente
                                        if (resultado.OperacionExitosa)
                                        {
                                            //Completando Transacción
                                            transaccion.Complete();

                                            //Instanciando Resultado de Acceso de Salida
                                            resultado = new RetornoOperacion(idAccesoSalida);
                                        }
                                    }
                                }
                            }
                        }
                        catch (Exception e)
                        {
                            //Instanciando Excepción
                            resultado = new RetornoOperacion(e.Message);
                        }
                    }
                    else
                    {
                        //Instanciando Excepción
                        resultado = new RetornoOperacion("La Fecha es Invalida");
                    }
                }
                else
                {
                    //Instanciando Excepción
                    resultado = new RetornoOperacion("El Acceso es Invalido");
                }
            }
            else
            {
                //Instanciando Excepción
                resultado = new RetornoOperacion("El Patio es Invalido");
            }

            //Devolviendo resultado Obtenido
            return(resultado.ToXMLString());
        }
コード例 #3
0
ファイル: UnidadesDentro.aspx.cs プロジェクト: lulzzz/SAT
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gvEntidades_RowDataBound(object sender, GridViewRowEventArgs e)
        {   //Recuperando controles de interés
            Image      img       = (Image)e.Row.FindControl("imgEstatus");
            LinkButton lnkButton = (LinkButton)e.Row.FindControl("lnkEvidencias");

            //Validando que exista el Control
            if (img != null)
            {     //Validación de Datos
                if (((DataRowView)e.Row.DataItem).Row.ItemArray[5].ToString() != "")
                { //Instanciando Evento
                    using (EventoDetalleAcceso eda = new EventoDetalleAcceso(Convert.ToInt32(((DataRowView)e.Row.DataItem).Row.ItemArray[5])))
                        //Instanciando Tipo de Evento
                        using (TipoEvento te = new TipoEvento(eda.id_tipo_evento))
                            //Validando el Estatus del Tiempo
                            switch (((DataRowView)e.Row.DataItem).Row.ItemArray[6].ToString())
                            {
                            case "0": //Ninguno
                            {         //Quitando Imagen
                                img.ImageUrl = "";
                                img.Visible  = false;
                                break;
                            }

                            case "1": //En Tiempo
                            {         //Carga
                                if (te.naturaleza_evento == TipoEvento.NaturalezaEvento.Carga)
                                {
                                    //Asignando Imagen Correspondiente
                                    img.ImageUrl = "~/Image/EntidadTiempoOKCarga.png";
                                }
                                //Descarga
                                else if (te.naturaleza_evento == TipoEvento.NaturalezaEvento.Descarga)
                                {
                                    //Asignando Imagen Correspondiente
                                    img.ImageUrl = "~/Image/EntidadTiempoOKDescarga.png";
                                }
                                //Estaciona
                                else if (te.naturaleza_evento == TipoEvento.NaturalezaEvento.Estaciona)
                                {
                                    //Asignando Imagen Correspondiente
                                    img.ImageUrl = "~/Image/EntidadTiempoOK.png";
                                }
                                //Visualizando Control
                                img.Visible = true;
                                break;
                            }

                            case "2": //Fuera de Tiempo
                            {         //Carga
                                if (te.naturaleza_evento == TipoEvento.NaturalezaEvento.Carga)
                                {
                                    //Asignando Imagen Correspondiente
                                    img.ImageUrl = "~/Image/EntidadTiempoEXCarga.png";
                                }
                                //Descarga
                                else if (te.naturaleza_evento == TipoEvento.NaturalezaEvento.Descarga)
                                {
                                    //Asignando Imagen Correspondiente
                                    img.ImageUrl = "~/Image/EntidadTiempoEXDescarga.png";
                                }
                                //Estaciona
                                else if (te.naturaleza_evento == TipoEvento.NaturalezaEvento.Estaciona)
                                {
                                    //Asignando Imagen Correspondiente
                                    img.ImageUrl = "~/Image/EntidadTiempoEX.png";
                                }
                                //Visualizando Control
                                img.Visible = true;
                                break;
                            }
                            }
                    //Instanciando Detalle de Acceso
                    using (DetalleAccesoPatio dap = new DetalleAccesoPatio(Convert.ToInt32(((DataRowView)e.Row.DataItem).Row.ItemArray[0])))
                        //Instanciando Acceso de Patio
                        using (AccesoPatio ap = new AccesoPatio(dap.id_acceso_entrada))
                            //Instanciando Ubicación de Patio
                            using (UbicacionPatio up = new UbicacionPatio(Convert.ToInt32(ddlPatio.SelectedValue)))
                            { //Validando que la Unidad no sobrepase el Tiempo en Patio
                                if (up.tiempo_limite > Convert.ToInt32((TSDK.Base.Fecha.ObtieneFechaEstandarMexicoCentro() - ap.fecha_acceso).TotalMinutes))
                                {
                                    //Asignando Color
                                    e.Row.Cells[4].ForeColor = System.Drawing.Color.DarkGreen;
                                }
                                else//Asignando Color
                                {
                                    e.Row.Cells[4].ForeColor = System.Drawing.Color.DarkRed;
                                }
                            }
                }
            }
            //Validando que exista el Control
            if (lnkButton != null)
            {
                //Validación de Datos
                if (((DataRowView)e.Row.DataItem).Row.ItemArray[9].ToString() != "0")
                {
                    //Mostrando Control
                    lnkButton.Visible = true;
                }
                else
                {
                    //Ocultando Control
                    lnkButton.Visible = false;
                }
            }
        }