private void SincronizaProductos() { try { migrationTable = migrationTableController.SelectOne(6); migrationFields = migrationFieldController.SelectByTableId(migrationTable.MigrationTableId); Sql = "SELECT "; foreach (var f in migrationFields) { if (migrationFields.Last() == f) { Sql += f.Expresion + " FROM " + migrationTable.Tabla; } else { Sql += f.Expresion + " , "; } } Sql += " " + migrationTable.Condicion; GetDataTable(Sql); producto = null; productos = productoController.SelectAll(); categorias = categoriaController.SelectAll(); presentaciones = presentacionController.SelectAll(); laboratorios = laboratorioController.SelectAll(); decimal p = 0; bool b = false; foreach (DataRow row in dataTable.Rows) { Ambiente.S1 = row["clave"].ToString().Trim().ToUpper(); Ambiente.S2 = row["descrip"].ToString().Trim().ToUpper(); Ambiente.S3 = row["cupo"].ToString().Trim().ToUpper(); Ambiente.S4 = row["presenta"].ToString().Trim().ToUpper(); Ambiente.S4 = presentaciones.FirstOrDefault(x => x.PresentacionId.ToUpper().Equals(Ambiente.S4)) == null ? "SYS" : Ambiente.S4; Ambiente.S5 = row["unidades"].ToString().Trim().ToUpper(); Ambiente.S6 = row["fabricante"].ToString().Trim().ToUpper(); Ambiente.S6 = laboratorios.FirstOrDefault(x => x.LaboratorioId.ToUpper().Equals(Ambiente.S6)) == null ? "SYS" : Ambiente.S6; Ambiente.S8 = row["imagen"].ToString().Trim().ToUpper(); Ambiente.S8 = Ambiente.Empresa.DirectorioImg + Path.GetFileName(Ambiente.S8); Ambiente.S9 = row["categoria"].ToString().Trim().ToUpper(); Ambiente.S9 = categorias.FirstOrDefault(x => x.CategoriaId.ToUpper().Equals(Ambiente.S9)) == null ? "SYS" : Ambiente.S9; Ambiente.Boolean1 = bool.TryParse(row["encatalogo"].ToString(), out b) == true ? b : false; Ambiente.Boolean2 = bool.TryParse(row["cklote"].ToString(), out b) == true ? b : false; Ambiente.Boolean3 = (bool)row["cklote"]; Ambiente.Decimal1 = decimal.TryParse(row["pcompra"].ToString().Trim(), out p) == true ? p : 1; Ambiente.Decimal2 = decimal.TryParse(row["pventa"].ToString().Trim(), out p) == true ? p : 1; Ambiente.Decimal3 = decimal.TryParse(row["pmayoreo"].ToString().Trim(), out p) == true ? p : 1; Ambiente.Decimal4 = decimal.TryParse(row["pcaja"].ToString().Trim(), out p) == true ? p : 1; if (row["tasaimp"].ToString().Trim().ToUpper().Equals("E")) { Ambiente.S7 = "SYS"; } else if (row["tasaimp"].ToString().Trim().ToUpper().Equals("I")) { Ambiente.S7 = "IVA"; } else { Ambiente.S7 = "SYS"; } producto = productos.FirstOrDefault(x => x.ProductoId.ToUpper().Equals(Ambiente.S1)); if (producto == null) { producto = new Producto(); producto.ProductoId = Ambiente.S1; producto.CategoriaId = Ambiente.S9; producto.PresentacionId = Ambiente.S4; producto.LaboratorioId = Ambiente.S6; producto.Descripcion = Ambiente.S2; producto.Unidades = Ambiente.S5; producto.Contenido = Ambiente.S3; producto.Stock = 0; //atencion producto.PrecioCompra = Ambiente.Decimal1; producto.PrecioCaja = Ambiente.Decimal4; producto.Precio1 = Ambiente.Decimal2; producto.Precio2 = Ambiente.Decimal3; producto.Precio3 = 0; producto.Precio4 = 0; producto.Utilidad1 = Ambiente.Margen(producto.Precio1, producto.PrecioCompra); producto.Utilidad2 = Ambiente.Margen(producto.Precio2, producto.PrecioCompra); producto.Utilidad3 = 0; producto.Utilidad4 = 0; producto.TieneLote = Ambiente.Boolean2; producto.IsDeleted = false; producto.CratedBy = "JMENDOZAJ"; producto.CratedAt = DateTime.Now; producto.DeletedBy = null; producto.UpdatedBy = "JMENDOZAJ"; producto.LoteId = null; //Atencion producto.UnidadMedidaId = "PZA"; producto.ClaveProdServId = "01010101"; producto.ClaveUnidadId = "H87"; producto.RutaImg = Ambiente.S8;//Atencion producto.ChkCaducidad = producto.TieneLote; producto.Impuesto1Id = Ambiente.S7; producto.Impuesto2Id = "SYS"; producto.Impuesto3Id = "SYS"; producto.Ocupado = false; producto.IsDeleted = false; producto.Min = 10; producto.Max = 20; producto.Costopp = Ambiente.Decimal1; producto.UltimoCosto = Ambiente.Decimal1; productoController.InsertOne(producto); } else { // producto.ProductoId = Ambiente.S1; producto.CategoriaId = Ambiente.S9; producto.PresentacionId = Ambiente.S4; producto.LaboratorioId = Ambiente.S6; producto.Descripcion = Ambiente.S2; producto.Unidades = Ambiente.S5; producto.Contenido = Ambiente.S3; producto.Stock = 0; //atencion producto.PrecioCompra = Ambiente.Decimal1; producto.PrecioCaja = Ambiente.Decimal4; producto.Precio1 = Ambiente.Decimal2; producto.Precio2 = Ambiente.Decimal3; producto.Precio3 = 0; producto.Precio4 = 0; producto.Utilidad1 = Ambiente.Margen(producto.Precio1, producto.PrecioCompra); producto.Utilidad2 = Ambiente.Margen(producto.Precio2, producto.PrecioCompra); producto.Utilidad3 = 0; producto.Utilidad4 = 0; producto.TieneLote = Ambiente.Boolean2; producto.IsDeleted = false; producto.CratedBy = "JMENDOZAJ"; producto.CratedAt = DateTime.Now; producto.DeletedBy = null; producto.UpdatedBy = "JMENDOZAJ"; producto.LoteId = null; //Atencion producto.UnidadMedidaId = "PZA"; producto.ClaveProdServId = "01010101"; producto.ClaveUnidadId = "H87"; producto.RutaImg = Ambiente.S8; //Atencion producto.ChkCaducidad = producto.TieneLote; producto.Impuesto1Id = Ambiente.S7; producto.Impuesto2Id = "SYS"; producto.Impuesto3Id = "SYS"; producto.Ocupado = false; producto.IsDeleted = false; producto.Costopp = Ambiente.Decimal1; producto.UltimoCosto = Ambiente.Decimal1; productoController.Update(producto); } } Ambiente.Mensaje("Proceso concluido"); } catch (Exception ex) { Ambiente.Mensaje(ex.ToString()); } }