Esempio n. 1
0
        private static Boolean?LeerArchivoPedido_Generica(string pNombreArchivo, string pSucursal, string pNombreArchivoOriginal, Boolean?pIsNombreRepetido)
        {
            Boolean?resultado = false;

            if (!string.IsNullOrWhiteSpace(pNombreArchivo))
            {
                string rutaTemporal = Constantes.cRaizArchivos + @"\archivos\ArchivosPedidos\";
                string rutaTemporalAndNombreArchivo = rutaTemporal + pNombreArchivo;
                if (System.IO.File.Exists(rutaTemporalAndNombreArchivo))
                {
                    resultado = true;
                    string       sLine     = string.Empty;
                    StreamReader objReader = new StreamReader(rutaTemporalAndNombreArchivo);
                    string       ext       = Path.GetExtension(rutaTemporalAndNombreArchivo);
                    if (ext == null)
                    {
                        ext = string.Empty;
                    }
                    ext = ext.Replace(".", "").ToUpper();
                    bool   isArchivoErroneo = false;
                    string TipoArchivo      = string.Empty;
                    if (pNombreArchivo.Length > 0)
                    {
                        TipoArchivo = pNombreArchivo[0].ToString();
                    }
                    if (ext == "TXT" || ext == "ASC")
                    {
                        TipoArchivo = "S";
                    }
                    DataTable tablaArchivoPedidos = FuncionesPersonalizadas.ObtenerDataTableProductosCarritoArchivosPedidos();

                    while (sLine != null)
                    {
                        sLine = objReader.ReadLine();
                        if (!string.IsNullOrEmpty(sLine))
                        {
                            if (ext == "TXT")
                            {
                                DataRow r = LeerRenglonArchivoTXT(tablaArchivoPedidos, sLine);
                                if (r != null)
                                {
                                    tablaArchivoPedidos.Rows.Add(r);
                                }
                            }
                            else if (ext == "ASC")
                            {
                                DataRow r = LeerRenglonArchivoASC(tablaArchivoPedidos, sLine);
                                if (r != null)
                                {
                                    tablaArchivoPedidos.Rows.Add(r);
                                }
                            }
                            else
                            {
                                // Leer Archivo
                                switch (TipoArchivo)
                                {
                                case "S":
                                    if (sLine.Length >= longFilaArchivoS)     //22
                                    {
                                        DataRow r = LeerRenglonArchivoS(tablaArchivoPedidos, sLine);
                                        if (r != null)
                                        {
                                            tablaArchivoPedidos.Rows.Add(r);
                                        }
                                    }
                                    break;

                                case "F":
                                    if (sLine.Length >= longFilaArchivoF)    //24
                                    {
                                        DataRow r = LeerRenglonArchivoF(tablaArchivoPedidos, sLine);
                                        if (r != null)
                                        {
                                            tablaArchivoPedidos.Rows.Add(r);
                                        }
                                    }
                                    break;

                                default:
                                    isArchivoErroneo = true;
                                    break;
                                }
                            }
                        }
                        if (isArchivoErroneo)
                        {
                            resultado = null;
                            break;
                        }
                    }
                    objReader.Close();
                    if (!isArchivoErroneo)
                    {
                        string sucElegida = pSucursal;// HiddenFieldSucursalEleginda.Value;
                        HttpContext.Current.Session["subirpedido_SucursalEleginda"] = sucElegida;
                        HttpContext.Current.Session["subirpedido_ListaProductos"]   = WebService.AgregarProductoAlCarritoDesdeArchivoPedidosV5(sucElegida, ((cClientes)HttpContext.Current.Session["clientesDefault_Cliente"]).cli_codsuc, tablaArchivoPedidos, TipoArchivo, ((cClientes)HttpContext.Current.Session["clientesDefault_Cliente"]).cli_codigo, ((cClientes)HttpContext.Current.Session["clientesDefault_Cliente"]).cli_codprov, ((cClientes)HttpContext.Current.Session["clientesDefault_Cliente"]).cli_isGLN, ((capaDatos.Usuario)HttpContext.Current.Session["clientesDefault_Usuario"]).id);


                        //if (pIsNombreRepetido == null || pIsNombreRepetido.Value)
                        //{
                        HttpContext.Current.Session["subirpedido_nombreArchivoCompleto"]         = pNombreArchivo;
                        HttpContext.Current.Session["subirpedido_nombreArchivoCompletoOriginal"] = pNombreArchivoOriginal;
                        //}
                        //else
                        //{
                        WebService.AgregarHistorialSubirArchivo(((cClientes)HttpContext.Current.Session["clientesDefault_Cliente"]).cli_codigo, sucElegida, pNombreArchivo, pNombreArchivoOriginal, DateTime.Now);
                        //}
                    }
                }
            }
            return(resultado);
        }