/// <summary>
 ///     Constructor de la clase
 /// </summary>
 public OrdenProceso()
 {
     _ErrorId                = 0;
     _DescripcionError       = string.Empty;
     _ResultadoDatos         = null;
     _OrdenEncabezadoEntidad = new OrdenEntidad();
     _OrdenDetalleEntidad    = new OrdenDetalleEntidad();
 }
        /// <summary>
        ///    Elimina una un producto de la orden de compra de la tabla OrdenDetalleTemp y lo agrega a la tabla de PreOrdenDetalletemp
        /// </summary>
        /// <param name="Clave">Clave de la Orden.</param>
        /// /// <param name="FechaInicio">Fecha de inicio del rango.</param>
        /// /// <param name="FechaFin">Fecha de fin del rango.</param>
        /// <param name="CadenaConexion">Cadena de conexión a la base de datos.</param>
        /// <returns>Resultado de la búsqueda.</returns>
        public ResultadoEntidad EliminarProductoOrdenDetalleTemp(string CadenaConexion, OrdenDetalleEntidad OrdenDetalleEntidad)
        {
            ResultadoEntidad Resultado = new ResultadoEntidad();
            SqlConnection    Conexion  = new SqlConnection(CadenaConexion);
            SqlCommand       Comando;
            SqlParameter     Parametro;
            SqlDataAdapter   Adaptador;

            try
            {
                Comando             = new SqlCommand("EliminarProductoOrdenDetalleTemp", Conexion);
                Comando.CommandType = CommandType.StoredProcedure;

                Parametro       = new SqlParameter("OrdenId", SqlDbType.VarChar);
                Parametro.Value = OrdenDetalleEntidad.OrdenId;
                Comando.Parameters.Add(Parametro);

                Parametro       = new SqlParameter("@PreOrdenId", SqlDbType.VarChar);
                Parametro.Value = OrdenDetalleEntidad.PreOrdenId;
                Comando.Parameters.Add(Parametro);

                Parametro       = new SqlParameter("@ProductoId", SqlDbType.VarChar);
                Parametro.Value = OrdenDetalleEntidad.ProductoId;
                Comando.Parameters.Add(Parametro);

                Adaptador = new SqlDataAdapter(Comando);

                Conexion.Open();
                Adaptador.Fill(Resultado.ResultadoDatos);
                Conexion.Close();

                return(Resultado);
            }
            catch (SqlException Excepcion)
            {
                Resultado.ErrorId          = Excepcion.Number;
                Resultado.DescripcionError = Excepcion.Message;

                return(Resultado);
            }
        }
        /// <summary>
        ///     Guarda el encabezado de una orden de compra temporal.
        /// </summary>
        /// <param name="Conexion">Conexión actual a la base de datos.</param>
        /// <param name="Transaccion">Transacción actual a la base de datos.</param>
        /// <param name="OrdenDetalleEntidad">Entidad del detalle de una orden de compra.</param>
        private void GuardarProductoOrdenEncabezadoTemp(SqlConnection Conexion, SqlTransaction Transaccion, OrdenDetalleEntidad OrdenDetalleEntidad)
        {
            OrdenAcceso OrdenAcceso = new OrdenAcceso();

            OrdenAcceso.InsertarProductoOrdenEncabezadoTemp(Conexion, Transaccion, _OrdenDetalleEntidad);

            _ErrorId          = OrdenAcceso.ErrorId;
            _DescripcionError = OrdenAcceso.DescripcionError;
        }
        /// <summary>
        ///     Guarda el encabezado de una orden de compra temporal.
        /// </summary>
        /// <param name="Conexion">Conexión actual a la base de datos.</param>
        /// <param name="Transaccion">Transacción actual a la base de datos.</param>
        /// <param name="OrdenDetalleEntidad">Entidad del detalle de una orden de compra.</param>
        public void InsertarProductoOrdenEncabezadoTemp(SqlConnection Conexion, SqlTransaction Transaccion, OrdenDetalleEntidad OrdenDetalleEntidad)
        {
            SqlCommand   Commando;
            SqlParameter Parameter;

            try
            {
                Commando             = new SqlCommand("InsertaProductoOrdenEncabezadoTemp", Conexion);
                Commando.CommandType = CommandType.StoredProcedure;

                Commando.Transaction = Transaccion;

                Parameter       = new SqlParameter("OrdenId", SqlDbType.VarChar);
                Parameter.Value = OrdenDetalleEntidad.OrdenId;
                Commando.Parameters.Add(Parameter);

                Parameter       = new SqlParameter("PreOrdenId", SqlDbType.VarChar);
                Parameter.Value = OrdenDetalleEntidad.PreOrdenId;
                Commando.Parameters.Add(Parameter);

                Parameter       = new SqlParameter("SesionId", SqlDbType.VarChar);
                Parameter.Value = OrdenDetalleEntidad.SesionId;
                Commando.Parameters.Add(Parameter);

                Commando.ExecuteNonQuery();
            }
            catch (SqlException Exception)
            {
                _ErrorId          = Exception.Number;
                _DescripcionError = Exception.Message;
            }
        }