private void SincronizaLotes() { try { migrationTable = migrationTableController.SelectOne(8); 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); lote = null; lotes = loteController.SelectAll(); productos = productoController.SelectAll(); decimal i = 0; DateTime dateTime; foreach (DataRow row in dataTable.Rows) { Ambiente.S1 = row["producto"].ToString().Trim().ToUpper(); Ambiente.S2 = row["lote"].ToString().Trim().ToUpper(); Ambiente.S3 = ""; //var d = row["caducidad"].ToString().Trim(); Ambiente.Datetime1 = DateTime.TryParse(row["caducidad"].ToString().Trim(), out dateTime) == true ? dateTime : DateTime.Now; Ambiente.Decimal1 = decimal.TryParse(row["cant"].ToString().Trim(), out i) == true ? i : 0; Ambiente.Decimal2 = decimal.TryParse(row["cant_orig"].ToString().Trim(), out i) == true ? i : 0; Ambiente.Decimal2 = Ambiente.Decimal2 == 0 ? Ambiente.Decimal1 : Ambiente.Decimal2; lote = null; lote = lotes.FirstOrDefault(x => x.ProductoId.ToUpper().Equals(Ambiente.S1) && x.NoLote.ToUpper().Equals(Ambiente.S2.ToUpper())); if (lote == null) { producto = productos.FirstOrDefault(x => x.ProductoId.ToUpper().Equals(Ambiente.S1.ToUpper())); if (producto == null) { Ambiente.S3 += " NO EXISTE PROD, " + Ambiente.S1 + " \n"; continue; } lote = new Lote(); lote.ProductoId = Ambiente.S1; lote.NoLote = Ambiente.S2.ToUpper(); lote.Caducidad = Ambiente.Datetime1; lote.StockInicial = Ambiente.Decimal2; lote.StockRestante = Ambiente.Decimal1; lote.CreatedAt = DateTime.Now; lote.CreatedBy = "JMENDOZAJ"; loteController.InsertOne(lote); } else { lote.ProductoId = Ambiente.S1; lote.NoLote = Ambiente.S2.ToUpper(); lote.Caducidad = Ambiente.Datetime1; lote.StockInicial = Ambiente.Decimal2; lote.StockRestante = Ambiente.Decimal1; lote.CreatedAt = DateTime.Now; lote.CreatedBy = "JMENDOZAJ"; loteController.Update(lote); } } //foreach (var l in lotes) //{ // producto = productos.FirstOrDefault(x => x.ProductoId.Equals(l.ProductoId)); //} Ambiente.Mensaje("Proceso concluido"); } catch (Exception ex) { Ambiente.Mensaje(ex.ToString()); } }