private static void UpdateLineaMarcaParte(int marcaParteId, IEnumerable<int> values) { var lineasActuales = Datos.GetListOf<LineaMarcaParte>(l => l.MarcaParteID.Equals(marcaParteId)); var selectedValues = new Dictionary<int, int>(); foreach (var item in values) { selectedValues.Add(item, (int)marcaParteOperaciones.Add); } foreach (var item in lineasActuales) { if (selectedValues.ContainsKey(item.LineaID)) { selectedValues[item.LineaID] = (int)marcaParteOperaciones.None; } else { selectedValues[item.LineaID] = (int)marcaParteOperaciones.Delete; } } foreach (var item in selectedValues) { if (item.Value == (int)marcaParteOperaciones.Add) //add new { var lineaMarcaParte = new LineaMarcaParte { MarcaParteID = marcaParteId, LineaID = Util.Entero(item.Key), UsuarioID = GlobalClass.UsuarioGlobal.UsuarioID, FechaRegistro = DateTime.Now, Estatus = true, Actualizar = true }; Datos.SaveOrUpdate<LineaMarcaParte>(lineaMarcaParte); //Aqui se trae la lista de proveedores que tengan una relacion con esta marca var provs = Datos.GetListOf<ProveedorMarcaParte>(m => m.MarcaParteID == marcaParteId && m.Estatus).GroupBy(c => new { c.ProveedorID, c.MarcaParteID }).ToList(); if (provs != null) { //Y se inserta en la tabla proveedorGanancia la marca y la linea con valores en 0 foreach (var pro in provs) { var proveedorid = Util.Entero(pro.Key.ProveedorID); var lineaId = Util.Entero(item.Key); var pg = Datos.GetEntity<ProveedorGanancia>(p => p.ProveedorID == proveedorid && p.MarcaParteID == marcaParteId && p.LineaID == lineaId); if (pg == null) { var ganancia = new ProveedorGanancia() { ProveedorID = pro.Key.ProveedorID, MarcaParteID = marcaParteId, LineaID = lineaId, PorcentajeUno = 0, PorcentajeDos = 0, PorcentajeTres = 0, PorcentajeCuatro = 0, PorcentajeCinco = 0 }; Datos.Guardar<ProveedorGanancia>(ganancia); } } } } else if (item.Value == (int)marcaParteOperaciones.Delete) //search and delete { var lineaMarcaParte = Datos.GetEntity<LineaMarcaParte>(l => l.MarcaParteID.Equals(marcaParteId) && l.LineaID.Equals(item.Key)); if (lineaMarcaParte != null) { Datos.Delete<LineaMarcaParte>(lineaMarcaParte); //Aqui se trae la lista de proveedores que tengan una relacion con esta marca var provs = Datos.GetListOf<ProveedorMarcaParte>(m => m.MarcaParteID == marcaParteId && m.Estatus).GroupBy(c => new { c.ProveedorID, c.MarcaParteID }).ToList(); if (provs != null) { //Y se elimina en la tabla proveedorGanancia el registro foreach (var pro in provs) { var proveedorid = Util.Entero(pro.Key.ProveedorID); var lineaId = Util.Entero(item.Key); var pg = Datos.GetEntity<ProveedorGanancia>(p => p.ProveedorID == proveedorid && p.MarcaParteID == marcaParteId && p.LineaID == lineaId); if (pg != null) { Datos.Delete<ProveedorGanancia>(pg); } } } } } } }
private static void UpdateLineaMarcaParte(int marcaParteId, IEnumerable <int> values) { var lineasActuales = Datos.GetListOf <LineaMarcaParte>(l => l.MarcaParteID.Equals(marcaParteId)); var selectedValues = new Dictionary <int, int>(); foreach (var item in values) { selectedValues.Add(item, (int)marcaParteOperaciones.Add); } foreach (var item in lineasActuales) { if (selectedValues.ContainsKey(item.LineaID)) { selectedValues[item.LineaID] = (int)marcaParteOperaciones.None; } else { selectedValues[item.LineaID] = (int)marcaParteOperaciones.Delete; } } foreach (var item in selectedValues) { if (item.Value == (int)marcaParteOperaciones.Add) //add new { var lineaMarcaParte = new LineaMarcaParte { MarcaParteID = marcaParteId, LineaID = Util.Entero(item.Key), UsuarioID = GlobalClass.UsuarioGlobal.UsuarioID, FechaRegistro = DateTime.Now, Estatus = true, Actualizar = true }; Datos.SaveOrUpdate <LineaMarcaParte>(lineaMarcaParte); //Aqui se trae la lista de proveedores que tengan una relacion con esta marca var provs = Datos.GetListOf <ProveedorMarcaParte>(m => m.MarcaParteID == marcaParteId && m.Estatus).GroupBy(c => new { c.ProveedorID, c.MarcaParteID }).ToList(); if (provs != null) { //Y se inserta en la tabla proveedorGanancia la marca y la linea con valores en 0 foreach (var pro in provs) { var proveedorid = Util.Entero(pro.Key.ProveedorID); var lineaId = Util.Entero(item.Key); var pg = Datos.GetEntity <ProveedorGanancia>(p => p.ProveedorID == proveedorid && p.MarcaParteID == marcaParteId && p.LineaID == lineaId); if (pg == null) { var ganancia = new ProveedorGanancia() { ProveedorID = pro.Key.ProveedorID, MarcaParteID = marcaParteId, LineaID = lineaId, PorcentajeUno = 0, PorcentajeDos = 0, PorcentajeTres = 0, PorcentajeCuatro = 0, PorcentajeCinco = 0 }; Datos.Guardar <ProveedorGanancia>(ganancia); } } } } else if (item.Value == (int)marcaParteOperaciones.Delete) //search and delete { var lineaMarcaParte = Datos.GetEntity <LineaMarcaParte>(l => l.MarcaParteID.Equals(marcaParteId) && l.LineaID.Equals(item.Key)); if (lineaMarcaParte != null) { Datos.Delete <LineaMarcaParte>(lineaMarcaParte); //Aqui se trae la lista de proveedores que tengan una relacion con esta marca var provs = Datos.GetListOf <ProveedorMarcaParte>(m => m.MarcaParteID == marcaParteId && m.Estatus).GroupBy(c => new { c.ProveedorID, c.MarcaParteID }).ToList(); if (provs != null) { //Y se elimina en la tabla proveedorGanancia el registro foreach (var pro in provs) { var proveedorid = Util.Entero(pro.Key.ProveedorID); var lineaId = Util.Entero(item.Key); var pg = Datos.GetEntity <ProveedorGanancia>(p => p.ProveedorID == proveedorid && p.MarcaParteID == marcaParteId && p.LineaID == lineaId); if (pg != null) { Datos.Delete <ProveedorGanancia>(pg); } } } } } } }