private static CotizacionDirecta GetFromComnpleteDataReader(IDataRecord reader)
        {
            try {
                var cot = new CotizacionDirecta();
                cot.Id       = cot.Id32 = Convert.ToInt32(reader["id"]);
                cot.Producto = reader["producto"].ToString();

                cot.Usuario =
                    Usuarios.clsUsuarioADO.ObtenerTransaccionUsuarioPorId(Convert.ToInt32(reader["idUsuario"])).
                    ObjetoTransaccion as clsUsuario;

                cot.Cliente = new clsClienteMaster(true);
                cot.Cliente = clsClienteMasterADO.ObtenerClienteMasterPorId(Convert.ToInt64(reader["idcliente"]));

                cot.NombreCliente  = reader["nombreCliente"].ToString();
                cot.FechaSolicitud = Convert.ToDateTime(reader["fechaSolicitud"]); //fecha solicitud

                cot.IncoTerm = new clsIncoTerm();
                cot.IncoTerm =
                    Parametros.clsParametrosClientesDAO.ObtenerIncoTermPorId(Convert.ToInt16(reader["idincoterms"]));

                cot.Commodity     = reader["commodity"].ToString();
                cot.GastosLocales = 0;

                if (!String.IsNullOrEmpty(reader["gastosLocales"].ToString()))
                {
                    cot.GastosLocales = Convert.ToDecimal(reader["gastosLocales"]);
                }

                cot.Observaciones      = reader["Observaciones"].ToString();
                cot.ObservacionesFijas = reader["ObservacionesFijas"].ToString();

                if (!string.IsNullOrEmpty(reader["copiadode"].ToString()))
                {
                    cot.CopiadoDe = Convert.ToInt32(reader["copiadode"]);
                }

                var listEstados =
                    (List <Estado>)ClsCotizacionDirectaEstadoDao.ListarEstadosCotizacionDirecta().ObjetoTransaccion;
                cot.Estado =
                    listEstados.Find(estado => estado.Id == Convert.ToInt32(reader["COTIZACION_Directa_ESTADOS_id"]));

                cot.GastosLocalesList =
                    ClsGastosLocalesDao.ObtieneGastosLocales(cot.Id32).ObjetoTransaccion as List <GastoLocal>;

                cot.Opciones = ClsOpcionDao.ObtieneOpciones(cot.Id32).ObjetoTransaccion as List <Opcion>;

                return(cot);
            } catch (Exception ex) {
                Log.EscribirLog(ex.Message);
                //throw;
                return(null);
            }
        }
        public static ResultadoTransaccion ListarTodasLasCotizacionesDirectas(clsUsuario usuario, DateTime desde)
        {
            ResultadoTransaccion res = new ResultadoTransaccion();

            estados = (List <Estado>)ClsCotizacionDirectaEstadoDao.ListarEstadosCotizacionDirecta().ObjetoTransaccion;

            IList <CotizacionDirecta> listCot = new List <CotizacionDirecta>();
            //Abrir Conexion
            var conn = BaseDatos.Conexion();

            try {
                SqlCommand command = new SqlCommand("SP_L_COTIZACION_SOLICITUD_COTIZACIONES_POR_USUARIO", conn);
                objParams = SqlHelperParameterCache.GetSpParameterSet(conn,
                                                                      "SP_L_COTIZACION_SOLICITUD_COTIZACIONES_POR_USUARIO");
                command.Transaction = conn.BeginTransaction();

                command.CommandType = CommandType.StoredProcedure;
                objParams[0].Value  = usuario.Id;
                objParams[1].Value  = desde;
                command.Parameters.AddRange(objParams);

                var reader = command.ExecuteReader();
                while (reader.Read())
                {
                    var incoterm   = Parametros.clsParametrosClientesDAO.ObtenerIncoTermPorId(4);
                    var cotizacion = GetFromDataReader(reader);
                    cotizacion.IncoTerm = incoterm;
                    listCot.Add(cotizacion);
                }

                res.Accion            = Entidades.Enums.Enums.AccionTransaccion.Consultar;
                res.ObjetoTransaccion = listCot;
                res.Descripcion       = "Listado Cotizaciones Directas";
            } catch (Exception ex) {
                Log.EscribirLog(ex.Message);

                res.Descripcion  = ex.Message;
                res.ArchivoError = NombreClase;
                res.MetodoError  = MethodBase.GetCurrentMethod().Name;
            } finally {
                conn.Close();
            }
            CargaOpciones(listCot);
            return(res);
        }