예제 #1
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }