Пример #1
0
        private void cargarToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Stream         myStream        = null;
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.InitialDirectory = "c:\\";
            openFileDialog1.Filter           = "xls files (*.xls)|*.xls";
            openFileDialog1.FilterIndex      = 2;
            openFileDialog1.RestoreDirectory = true;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    var cambios = 0;
                    if ((myStream = openFileDialog1.OpenFile()) != null)
                    {
                        var reader = new StreamReader(myStream);
                        while (!reader.EndOfStream)
                        {
                            var      line   = reader.ReadLine();
                            var      values = line.Split('\t');
                            DateTime fecha;
                            if (values.Length > 0 && DateTime.TryParse(values[0], out fecha))
                            {
                                var tipo           = (values[1] == "Venta" ? Dominio.Enum.Tipo.Salida : Dominio.Enum.Tipo.Entrada);
                                var cantidad       = int.Parse(values[3].Split(',')[0].Replace(".", "")) * (tipo == Dominio.Enum.Tipo.Entrada ? 1 : -1);
                                var precioUnitario = decimal.Parse(values[4].Replace("$", ""));
                                var precioNeto     = decimal.Parse(values[8].Replace("$", "")) * (tipo == Dominio.Enum.Tipo.Entrada ? -1 : 1);
                                var movimiento     = new Movimiento {
                                    Fecha = fecha, Cantidad = cantidad, PrecioUnitario = precioUnitario, PrecioNeto = precioNeto, Tipo = tipo
                                };
                                cambios = repositorio.InsertarMovimiento(values[2], movimiento) ? 1 : 0;
                            }
                        }
                    }
                    MessageBox.Show(String.Format("Se insertaron {0} movimientos", cambios.ToString()));
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
                }
            }
        }
Пример #2
0
        public ActionResult IngresarDatos(HttpPostedFileBase file)
        {
            var mensaje = "";

            if (file != null && User.Identity.IsAuthenticated)
            {
                try
                {
                    var cambios = 0;
                    if (file.InputStream != null)
                    {
                        var reader = new StreamReader(file.InputStream);
                        while (!reader.EndOfStream)
                        {
                            var      line   = reader.ReadLine();
                            var      values = line.Split('\t');
                            DateTime fecha;
                            if (values.Length > 0 && DateTime.TryParse(values[0], CultureInfo.GetCultureInfo("es-AR"), DateTimeStyles.None, out fecha))
                            {
                                var tipo           = (values[1] == "Venta" ? Tipo.Salida : Dominio.Enum.Tipo.Entrada);
                                var cantidad       = int.Parse(values[3].Split(',')[0], NumberStyles.AllowDecimalPoint | NumberStyles.AllowThousands, CultureInfo.GetCultureInfo("es-AR")) * (tipo == Dominio.Enum.Tipo.Entrada ? 1 : -1);
                                var precioUnitario = decimal.Parse(values[4].Replace("$", ""), CultureInfo.GetCultureInfo("es-AR"));
                                var precioNeto     = decimal.Parse(values[9].Replace("$", ""), CultureInfo.GetCultureInfo("es-AR")) * (tipo == Tipo.Entrada ? -1 : 1);
                                var movimiento     = new Movimiento {
                                    Fecha = fecha, Cantidad = cantidad, PrecioUnitario = precioUnitario, PrecioNeto = precioNeto, Tipo = tipo
                                };
                                cambios += servicio.InsertarMovimiento(values[2], movimiento, User.Identity.Name) ? 1 : 0;
                            }
                        }
                    }
                    mensaje += $"Se insertaron {cambios} movimientos";
                }
                catch (Exception ex)
                {
                    mensaje = ex.Message;
                }
            }

            return(RedirectToAction("Index", "Home", new { mensaje }));
        }