private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
 {
     try
     {
         if (accion == "cargar")
         {
             switch (origen)
             {
                 case "frmArqueoInter":
                     dsArqueo = BL.VentasBLL.CrearDatasetArqueo(strFechaDesde, strFechaHasta, idPc);
                     break;
                 case "frmArticulosAgrupar":
                     tabla = BL.StockBLL.GetStock();
                     tblArticulosStock = BL.ArticulosBLL.GetArticulosStock();
                     break;
                 case "frmArticulosBorradoMasivo":
                     dtEstatico = BL.PedidosBLL.CrearDataset(strFecha, genero);
                     DataTable tblArticulos = BL.GetDataBLL.Articulos();
                     DataTable tblPedidos = dtEstatico.Tables[0];
                     DataTable tblArticuloBorrar = dtEstatico.Tables[1];
                     foreach (DataRow row in tblArticuloBorrar.Rows)
                     {
                         string articulos = row["IdArticulo"].ToString();
                         DataRow[] rowfound = tblPedidos.Select("Articulo LIKE '" + articulos + "*'");
                         DataRow[] rowfoundZero = tblPedidos.Select("[Stock] = 0 AND Articulo LIKE '" + articulos + "*' AND [Venta] is null");
                         if (rowfoundZero.Count() == rowfound.Count())
                         {
                             DataRow[] rowArticulo = tblArticulos.Select("IdArticuloART LIKE '" + articulos + "*'");
                             foreach (DataRow rowBorrar in rowArticulo)
                             {
                                 rowBorrar.Delete();
                             }
                         }
                     }
                     BL.ArticulosBLL.GrabarDB(tblArticulos);
                     break;
                 case "frmArticulosBorrar":
                     tblArticulosBorrar = BL.ArticulosBLL.GetArticulosStock();
                     break;
                 case "frmFondoCajaCons":
                     dt = BL.FondoCajaBLL.CrearDatasetCons();
                     break;
                 case "frmEmpleadosMovConsInter":
                     tblEstatica = BL.EmpleadosMovBLL.EmpleadosMovCons(strFechaDesde, strFechaHasta, idEmpleado, liquidado);
                     break;
                 case "frmPedido":
                     dtEstatico = BL.PedidosBLL.CrearDataset(strFecha, genero);
                     DataTable tblPedido = dtEstatico.Tables[0];
                     DataTable tblBorrar = dtEstatico.Tables[1];
                     foreach (DataRow row in tblBorrar.Rows)
                     {
                         string articulos = row["IdArticulo"].ToString();
                         DataRow[] rowfound = tblPedido.Select("Articulo LIKE '" + articulos + "*'");
                         DataRow[] rowfoundZero = tblPedido.Select("[Stock] = 0 AND Articulo LIKE '" + articulos + "*' AND [Venta] is null");
                         if (rowfoundZero.Count() == rowfound.Count())
                         {
                             foreach (DataRow rowBorrar in rowfound)
                             {
                                 rowBorrar.Delete();
                             }
                         }
                     }
                     break;
                 case "frmStockCompPesos":
                     tblEstatica = BL.StockMovBLL.GetCompensacionesPesos(strFechaDesde, strFechaHasta, idLocal);
                     break;
                 case "frmStockMovInforme":
                     dsStockMovCons = BL.StockMovBLL.CrearDatasetCons(strFechaDesde, strFechaHasta, idLocal, tipo, opcMov, articulo, descripcion);
                     break;
                 case "frmStock":
                     dtEstatico = BL.StockBLL.CrearDataset(locales, genero, proveedor, articulo, descripcion, activoWeb);
                     break;
                 case "frmVentasDetalleInter":
                     tblEstatica = BL.VentasBLL.GetVentasDetalle(forma, strFechaDesde, strFechaHasta, idLocal, parametros);
                     break;
                 case "frmVentasPesosCons":
                     dsVentasPesosCons = BL.VentasBLL.CrearDatasetVentasPesos(forma, strFechaDesde, strFechaHasta, locales, genero);
                     break;
                 case "frmVentasPesosInter_diarias":
                     tblEstatica = BL.VentasBLL.GetVentasPesosDiarias(strFechaDesde, strFechaHasta, idLocal, formaPago);
                     break;
             }
         }
         else //grabar en base de datos
         {
             switch (origen)
             {
                 case "frmAlicuotasIva":
                     BL.AlicuotasIvaBLL.GrabarDB(tabla, idAlicuota, oldIdAlicuota);
                     break;
                 case "frmArqueoCajaAdmin_borrarTesoreria":
                     BL.TesoreriaMovimientosBLL.BorrarByPK(PK);
                     break;
                 case "frmArqueoCajaAdmin_borrarVenta":
                     BL.VentasBLL.BorrarByPK(PK);
                     break;
                 case "frmArticulos":
                     BL.ArticulosBLL.GrabarDB(tabla);
                     break;
                 case "frmArticulosAgrupar":
                     BL.TransaccionesBLL.GrabarArticulosAgrupar(tblStock, tblArticulos, ref codigoError);
                     break;
                 case "frmArticulosBorrar":
                     BL.ArticulosBLL.GrabarDB(tabla);
                     TratarImagenesService tis = new TratarImagenesService();
                     tis.BorrarImagenes(imagenesBorrar);
                     break;
                 case "frmArticulosGenerar":
                     BL.ArticulosBLL.GrabarDB(tabla);
                     break;
                 case "frmArticulosItems":
                     BL.ArticulosItemsBLL.GrabarDB(tabla);
                     break;
                 case "frmClientes":
                     BL.ClientesBLL.GrabarDB(tabla);
                     break;
                 case "frmColores":
                     BL.ColoresBLL.GrabarDB(tabla);
                     break;
                 case "frmCondicionIva":
                     BL.CondicionIvaBLL.GrabarDB(tabla);
                     break;
                 case "frmEmpleados":
                     BL.EmpleadosBLL.GrabarDB(tabla);
                     break;
                 case "frmEmpleadosMov":
                     BL.EmpleadosMovBLL.GrabarDB(tabla);
                     break;
                 case "frmEmpleadosMovTipo":
                     BL.EmpleadosMovTiposBLL.GrabarDB(tabla);
                     break;
                 case "ExportarDatos":
                     BL.DatosBLL.ExportarDatos();
                     break;
                 case "ImportarDatos":
                     BL.DatosBLL.GetDataPOS(today);
                     break;
                 case "frmFondoCaja":
                     BL.FondoCajaBLL.GrabarDB(tabla);
                     break;
                 case "frmFondoCajaCons":
                     BL.FondoCajaBLL.BorrarByPK(PK);
                     bindingSource1.RemoveCurrent();
                     bindingSource1.EndEdit();
                     break;
                 case "frmFormasPago":
                     BL.FormasPagoBLL.GrabarDB(tabla);
                     break;
                 case "frmGeneros":
                     BL.GenerosBLL.GrabarDB(tabla);
                     break;
                 case "frmLocales":
                     BL.LocalesBLL.GrabarDB(tabla);
                     break;
                 case "frmProveedores":
                     BL.ProveedoresBLL.GrabarDB(tabla);
                     break;
                 case "frmRazonSocial":
                     BL.RazonSocialBLL.GrabarDB(tabla);
                     break;
                 case "frmStockMov":
                     BL.TransaccionesBLL.GrabarStockMovimientos(dsStockMov);
                     break;
                 case "frmStockMov_borrar":
                     BL.StockMovBLL.BorrarByPK(PK);
                     break;
                 case "frmStockEntradas":
                     BL.TransaccionesBLL.GrabarStockMovimientos(dsStockMov);
                     break;
                 case "frmVentas":
                     BL.VentasBLL.GrabarVentas(dsVentas);
                     break;
                 case "frmTesoreriaMov":
                     BL.TesoreriaMovimientosBLL.GrabarDB(dsTesoreriaMov);
                     break;
             }
         }
     }
     catch (ServidorMysqlInaccesibleException)
     {
         servidorCaidoExcepcion = new ServidorMysqlInaccesibleException("No se pudo conectar con el servidor de base de datos."
                     + '\r' + "Consulte al administrador del sistema.");
     }
     catch (WebException)
     {
         this.Visible = false;
         MessageBox.Show("No se pudo conectar con el servidor remoto."
                 + '\r' + "No se importaron los datos."
                 + '\r' + "Intente nuevamente.",
                 "Trend Sistemas", MessageBoxButtons.OK,
                 MessageBoxIcon.Error);
         return;
     }
 }
 private void btnGrabar_Click(object sender, EventArgs e)
 {
     MemoryStream ms;
     bool tratarImagenesServer = false;
     Cursor.Current = Cursors.WaitCursor;
     try
     {
         if (strFileName != null)
         {
             var image_large = Image.FromFile(strFileName);
             if (image_large.Height < 1600 && image_large.Width < 1200)
             {
                 MessageBox.Show("La imagen debe medir 1600px de alto por 1200px de ancho.", "Trend Gestión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 return;
             }
             ms = new MemoryStream();
             using (FileStream fs = File.OpenRead(strFileName))
             {
                 fs.CopyTo(ms);
             }
             BL.Utilitarios.UploadFromMemoryStream(ms, nombreServidor + "_large.jpg", "karminna");
             tratarImagenesServer = true;
         }
         if (strFileNameBck != null)
         {
             var image_large = Image.FromFile(strFileNameBck);
             if (image_large.Height < 1600 && image_large.Width < 1200)
             {
                 MessageBox.Show("La imagen debe medir 1600px de alto por 1200px de ancho.", "Trend Gestión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 return;
             }
             ms = new MemoryStream();
             using (FileStream fs = File.OpenRead(strFileNameBck))
             {
                 fs.CopyTo(ms);
             }
             BL.Utilitarios.UploadFromMemoryStream(ms, nombreServidor + "_bck_large.jpg", "karminna");
             tratarImagenesServer = true;
         }
         if (strFileNameColor != null)
         {
             ms = new MemoryStream();
             using (FileStream fs = File.OpenRead(strFileNameColor))
             {
                 fs.CopyTo(ms);
             }
             BL.Utilitarios.UploadFromMemoryStream(ms, nombreServidorColor, "karminna");
         }
         if (tratarImagenesServer)
         {
             TratarImagenesService tis = new TratarImagenesService();
             tis.TratarImagenes(nombreServidor);
         }
         fila.EndEdit();
         if (tblArticulos.GetChanges() != null)
         {
             Grabar();
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Se produjo un error al subir las imagenes al servidor", "Trend");
     }
 }
 private void btnGrabar_Click(object sender, EventArgs e)
 {
     MemoryStream ms;
     bool tratarImagenesServer = false;
     Cursor.Current = Cursors.WaitCursor;
     if (!BL.UtilDB.ValidarServicioMysql())
     {
         MessageBox.Show("NO SE ACTUALIZARON LOS DATOS." + '\r' + "No se pudo conectar con el servidor de base de datos."
                 + '\r' + "Consulte al administrador del sistema.", "Trend Sistemas", MessageBoxButtons.OK,
                 MessageBoxIcon.Error);
         tblArticulos.RejectChanges();
         return;
     }
     try
     {
         if (strFileName != null)
         {
             var image_large = Image.FromFile(strFileName);
             if (image_large.Height < 1600 && image_large.Width < 1200)
             {
                 MessageBox.Show("La imagen debe medir 1600px de alto por 1200px de ancho.", "Trend Gestión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 return;
             }
             ms = new MemoryStream();
             using (FileStream fs = File.OpenRead(strFileName))
             {
                 fs.CopyTo(ms);
             }
             BL.UtilFTP.UploadFromMemoryStream(ms, nombreServidor + "_large.jpg", "karminna");
             tratarImagenesServer = true;
         }
         if (strFileNameBck != null)
         {
             var image_large = Image.FromFile(strFileNameBck);
             if (image_large.Height < 1600 && image_large.Width < 1200)
             {
                 MessageBox.Show("La imagen debe medir 1600px de alto por 1200px de ancho.", "Trend Gestión", MessageBoxButtons.OK, MessageBoxIcon.Error);
                 return;
             }
             ms = new MemoryStream();
             using (FileStream fs = File.OpenRead(strFileNameBck))
             {
                 fs.CopyTo(ms);
             }
             BL.UtilFTP.UploadFromMemoryStream(ms, nombreServidor + "_bck_large.jpg", "karminna");
             tratarImagenesServer = true;
         }
         if (strFileNameColor != null)
         {
             ms = new MemoryStream();
             using (FileStream fs = File.OpenRead(strFileNameColor))
             {
                 fs.CopyTo(ms);
             }
             BL.UtilFTP.UploadFromMemoryStream(ms, nombreServidorColor, "karminna");
         }
         if (tratarImagenesServer)
         {
             TratarImagenesService tis = new TratarImagenesService();
             tis.TratarImagenes(nombreServidor);
         }
         fila.EndEdit();
         if (tblArticulos.GetChanges() != null)
         {
             Grabar();
         }
     }
     catch (WebException)
     {
         MessageBox.Show("Se produjo un error al subir las imagenes al servidor", "Trend");
     }
 }