/// <summary>
        /// Procedimiento que lista los postes en base al id de la cotización
        /// </summary>
        /// <param name="intCotizacionID"></param>
        /// <returns></returns>
        public List <DatosPrecioPoste> ListarSeleccionPoste(int intCotizacionID)
        {
            List <DatosPrecioPoste> result = new List <DatosPrecioPoste>();

            try
            {
                using (PosteDriveInDataContext dc = new PosteDriveInDataContext(Helper.ConnectionString()))
                {
                    var query = from item in dc.stp_ListarDatosPosteDriveIn(0, intCotizacionID, 0)
                                select new DatosPrecioPoste
                    {
                        decPrecioVentaTotal = item.decPrecioVentaTotal,
                        decPesoTotal        = item.decPesoTotal,
                        decTotalKilo        = item.decTotalKilo,
                        decPrecioTyrsa      = item.decPrecioTyrsa,
                        decCalibre          = item.decCalibre,
                        decPrecioTyrsaKg    = item.decPrecioTyrsaKg,
                        decPrecioTyrsaMetro = item.decPrecioTyrsaMetro,
                        decRelacionPrecios  = item.decRelacionPrecios,
                        decSolera           = item.decSolera,
                        sintNumPosteReq     = item.sintNumPosteReq,
                        sintNumTravesanio   = item.sintNumTravesanio
                    };
                    result.AddRange(query);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }
        /// <summary>
        /// Procedimiento que lista los datos poste drive in
        /// </summary>
        /// <param name="intDatoPosteDriveInID"></param>
        /// <param name="intCotizacionID"></param>
        /// <param name="intDatoMarcoID"></param>
        /// <returns></returns>
        public List <DatosPosteDriveIn> ListarDatosPosteDriveIn(int intDatoPosteDriveInID, int intCotizacionID, int intDatoMarcoID)
        {
            List <DatosPosteDriveIn> result = new List <DatosPosteDriveIn>();

            try
            {
                using (PosteDriveInDataContext dc = new PosteDriveInDataContext(Helper.ConnectionString()))
                {
                    var query_1 = from item in dc.stp_ListarDatosPosteDriveIn(intDatoPosteDriveInID, intCotizacionID, intDatoMarcoID)
                                  select new DatosPosteDriveIn
                    {
                        intDatoPosteDriveInID = item.intDatoPosteDriveInID,
                        intElementoID         = item.intElementoID,
                        intCotizacionID       = item.intCotizacionID,
                        intDetCotizaID        = item.intDetCotizaID,
                        intDatoMarcoID        = item.intDatoMarcoID,
                        intAlturaMarcoID      = item.intAlturaMarcoID,
                        decFondo             = item.decFondo,
                        intSeleccionMarcoID  = item.intSeleccionMarcoID,
                        intDetCotizaID_Marco = item.intDetCotizaID_Marco,
                        intCantidad          = item.intCantidad,
                        bitDobleMonten       = item.bitDobleMonten,
                        decAlturaDobleMonten = item.decAlturaDobleMonten,
                        bitEstructural       = item.bitEstructural,
                        bitRolado            = item.bitRolado,
                    };
                    result.AddRange(query_1);
                    if (result.Count() > 0)
                    {
                        for (int i = 0; i < result.Count(); i++)
                        {
                            var query_2 = from item in dc.stp_ListarDatosPosteDriveIn(result[i].intDatoPosteDriveInID, result[i].intCotizacionID, result[i].intDatoMarcoID)
                                          select new DatosPrecioPoste
                            {
                                decPrecioVentaTotal = item.decPrecioVentaTotal,
                                decPesoTotal        = item.decPesoTotal,
                                decTotalKilo        = item.decTotalKilo,
                                decPrecioTyrsa      = item.decPrecioTyrsa,
                                decCalibre          = item.decCalibre,
                                decPrecioTyrsaKg    = item.decPrecioTyrsaKg,
                                decPrecioTyrsaMetro = item.decPrecioTyrsaMetro,
                                decRelacionPrecios  = item.decRelacionPrecios,
                                decSolera           = item.decSolera,
                                sintNumPosteReq     = item.sintNumPosteReq,
                                sintNumTravesanio   = item.sintNumTravesanio
                            };
                            result[i].seleccion = new List <DatosPrecioPoste>();
                            // Obtenemos la lista de precios
                            result[i].seleccion.AddRange(query_2);
                        }
                    }
                    if (result.Count() > 0)
                    {
                        for (int i = 0; i < result.Count(); i++)
                        {
                            // Obtenemos la información de pantalla de marco
                            result[i].datosMarco = ListarDatosMarcoDriveIn((int)result[i].intCotizacionID, (int)result[i].intDatoMarcoID).Count() == 0 ? null :
                                                   ListarDatosMarcoDriveIn((int)result[i].intCotizacionID, (int)result[i].intDatoMarcoID).First();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }