Ejemplo n.º 1
0
        public DataTable DatosSucursal(DataTable table, DataTable _DatosPJ, string _Sucursal)
        {
            try
            {
                DataTable _TblSucursal = (from item in table.AsEnumerable()
                                          where item.Field <string>("GroupName").Contains(_Sucursal)
                                          select item).CopyToDataTable();

                decimal TotalPromedio = Convert.ToDecimal(_TblSucursal.Compute("sum(Promedio)", string.Empty));

                int x             = 1;
                var list_Sucursal = (from item in _TblSucursal.AsEnumerable()
                                     group item by new
                {
                    ItmsGrpNam = item.Field <string>("ItmsGrpNam")
                } into grouped
                                     orderby(decimal)(grouped.Sum(ix => ix.Field <decimal>("Promedio"))) descending
                                     select new
                {
                    Row = x++,
                    Linea = grouped.Key.ItmsGrpNam,
                    Promedio = (decimal)(grouped.Sum(ix => ix.Field <decimal>("Promedio"))),
                    Porcentaje1 = TotalPromedio == 0 ? 0 : (decimal)(grouped.Sum(ix => ix.Field <decimal>("MES3"))) / TotalPromedio
                }
                                     ).ToList();

                DataTable auxsuc = Clases.ListConverter.ToDataTable(list_Sucursal);
                int       x2     = auxsuc.Rows.Count + 1;

                var LeftJoin = from pj in _DatosPJ.AsEnumerable()
                               join sucursal in auxsuc.AsEnumerable()
                               on pj.Field <string>("Linea") equals sucursal.Field <string>("Linea") into JoinedPJSucursal
                               from sucursal in JoinedPJSucursal.DefaultIfEmpty()
                               select new
                {
                    Row1         = pj.Field <int>("Row"),
                    Linea        = pj.Field <string>("Linea"),
                    PromedioPJ   = pj.Field <decimal>("Promedio"),
                    PorcentajePJ = pj.Field <decimal>("Porcentaje1"),
                    Row2         = sucursal != null?sucursal.Field <int>("Row") : x2++,
                                       PromedioSucursal = sucursal != null?sucursal.Field <decimal>("Promedio") : 0,
                                                              PorcentajeSucursal = sucursal != null?sucursal.Field <decimal>("Porcentaje1") : 0
                };
                DataTable _DatosSucusal = Clases.ListConverter.ToDataTable(LeftJoin.ToList());

                return(_DatosSucusal);
            }
            catch (Exception)
            {
                return(new DataTable());
            }
        }
Ejemplo n.º 2
0
        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                this.Esperar();
                DataTable TBL = this.Acumulado();
                gridExceso.DataSource = null;
                var query = from item1 in Datos.AsEnumerable()
                            join item2 in TBL.AsEnumerable() on
                            item1.Field <string>("Artículo") equals item2.Field <string>("Artículo") into JoinedPJSucursal
                            from item2 in JoinedPJSucursal.DefaultIfEmpty()
                            select new
                {
                    Linea       = item1.Field <string>("Linea"),
                    Articulo    = item1.Field <string>("Artículo"),
                    Descripcion = item1.Field <string>("Descripción"),
                    Ideal       = item1.Field <Int32>("Ideal"),
                    Stock       = item1.Field <decimal>("Stock"),
                    Solicitado  = item1.Field <decimal>("Solicitado"),
                    TotalVenta  = item1.Field <decimal>("Total Venta"),
                    TotalCompra = item1.Field <decimal>("Total Compra"),

                    IdealAcumulado       = item2 == null ? 0 : item2.Field <Int32>("Ideal"),
                    StockAcumulado       = item2 == null ? 0 : item2.Field <decimal>("Stock"),
                    SolicitadoAcumulado  = item2 == null ? 0 : item2.Field <decimal>("Solicitado"),
                    TotalVentaAcumulado  = item2 == null ? 0 : item2.Field <decimal>("Total Venta"),
                    TotalCompraAcumulado = item2 == null ? 0 : item2.Field <decimal>("Total Compra"),
                };


                gridExceso.DataSource = query.ToList();

                this.FormatoAcum(gridExceso);
            }
            catch (Exception)
            {
            }
            finally
            {
                this.Continuar();
            }
        }