private void bsResumoCliente_PositionChanged(object sender, EventArgs e) { if (bsResumoCliente.Current != null) { string Cd_vendedor = (bsResumoVendedor.Current as TRegistro_ResumoVendedor).Cd_vendedor; int mes = (bsResumoVendedor.Current as TRegistro_ResumoVendedor).Mes; //Resumo Vendedor TList_ResumoVendedor lRClienteGrupo = new TList_ResumoVendedor(); (bsResumoCliente.DataSource as TList_ResumoVendedor).ForEach(y => { lItemVenda.GroupBy(p => p.Cd_grupo, (aux, venda) => new TRegistro_ResumoVendedor() { Cd_grupo = aux, Ds_grupo = venda.ToList().Find(p => p.Cd_grupo.Equals(aux)).Ds_grupo.Trim(), Mes = mes, Cd_clifor = y.Cd_clifor, Nm_clifor = y.Nm_clifor, Cd_vendedor = Cd_vendedor, Vl_cupom = venda.ToList().FindAll(x => x.Cd_vendedor.Equals(Cd_vendedor) && x.Dt_emissao.Value.Month.Equals(mes) && x.Nm_clifor.Equals(y.Nm_clifor)).Sum(x => x.Vl_subtotalliquido), Vl_devolucao = venda.ToList().FindAll(x => x.Cd_vendedor.Equals(Cd_vendedor) && x.Dt_emissao.Value.Month.Equals(mes) && x.Nm_clifor.Equals(y.Nm_clifor)).Sum(x => x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade)), Vl_TotalLiquido = (venda.ToList().FindAll(x => x.Cd_vendedor.Equals(Cd_vendedor) && x.Dt_emissao.Value.Month.Equals(mes) && x.Nm_clifor.Equals(y.Nm_clifor)).Sum(x => x.Vl_subtotalliquido - (x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade)))), }).OrderByDescending(p => p.Vl_TotalLiquido).Where(p => p.Vl_TotalLiquido > decimal.Zero).ToList().ForEach(p => lRClienteGrupo.Add(p)); }); TList_ResumoVendedor ListaClienteGrupo = new TList_ResumoVendedor(); lRClienteGrupo.ForEach(p => { if (ListaClienteGrupo.Count.Equals(0) || !ListaClienteGrupo.Exists(x => x.Ds_grupo.Equals(p.Nm_clifor))) { TRegistro_ResumoVendedor r = new TRegistro_ResumoVendedor(); r.Ds_grupo = p.Nm_clifor; r.Nm_clifor = p.Nm_clifor; ListaClienteGrupo.Add(r); } ListaClienteGrupo.Add(p); ListaClienteGrupo.FindLast(x => string.IsNullOrEmpty(x.Cd_clifor)).Vl_cupom += p.Vl_cupom; ListaClienteGrupo.FindLast(x => string.IsNullOrEmpty(x.Cd_clifor)).Vl_devolucao += p.Vl_devolucao; ListaClienteGrupo.FindLast(x => string.IsNullOrEmpty(x.Cd_clifor)).Vl_TotalLiquido += p.Vl_TotalLiquido; }); bsResumoClienteGrupos.DataSource = ListaClienteGrupo; } }
public void BuscarRel() { if (bsVendedor.Current != null) { //Buscar Vendas do ultimos 12 meses string dt_ini = Convert.ToDateTime(new DateTime(CamadaDados.UtilData.Data_Servidor().AddMonths(-12).Year, CamadaDados.UtilData.Data_Servidor().AddMonths(-12).Month, 1)).ToString("dd/MM/yyyy"); string dt_fin = Convert.ToDateTime(new DateTime(CamadaDados.UtilData.Data_Servidor().AddMonths(-1).Year, CamadaDados.UtilData.Data_Servidor().AddMonths(-1).Month, DateTime.DaysInMonth(CamadaDados.UtilData.Data_Servidor().AddMonths(-1).Year, CamadaDados.UtilData.Data_Servidor().AddMonths(-1).Month), 23, 59, 59)).ToString("dd/MM/yyyy"); //Buscar Totais Vendas por Mês lItemVenda = new CamadaDados.Faturamento.PDV.TCD_VendaRapida_Item().Select( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + cbEmpresa.SelectedValue.ToString() + "'" }, new Utils.TpBusca() { vNM_Campo = "isnull(cf.st_registro, 'A')", vOperador = "<>", vVL_Busca = "'C'" }, new Utils.TpBusca() { vNM_Campo = "convert(datetime, floor(convert(decimal(30,10), cf.dt_emissao)))", vOperador = ">=", vVL_Busca = "'" + Convert.ToDateTime(dt_ini).ToString("yyyyMMdd") + "'" }, new Utils.TpBusca() { vNM_Campo = "convert(datetime, floor(convert(decimal(30,10), cf.dt_emissao)))", vOperador = "<=", vVL_Busca = "'" + Convert.ToDateTime(dt_fin).ToString("yyyyMMdd") + "'" } }, 0, string.Empty, "cf.dt_emissao"); //Resumo Empresa TList_ResumoEmpresa lREmpresa = new TList_ResumoEmpresa(); lItemVenda.GroupBy(p => p.Dt_emissao.Value.Month, (aux, venda) => new TRegistro_ResumoEmpresa() { Mes = aux, Vl_cupom = venda.Sum(x => x.Vl_subtotalliquido), Vl_devolucao = venda.Sum(x => x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade)), VL_TotalLiquido = venda.Sum(x => x.Vl_subtotalliquido - (x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade))), }).ToList().ForEach(p => lREmpresa.Add(p)); bsResumoEmpresa.DataSource = lREmpresa; #region Resumo Grupo de Produto Empresa TList_ResumoEmpresa lREmpresaGrupos = new TList_ResumoEmpresa(); lREmpresa.ForEach(y => { lItemVenda.GroupBy(p => p.Cd_grupo, (aux, venda) => new TRegistro_ResumoEmpresa() { Mes = y.Mes, Cd_grupo = aux, Ds_grupo = venda.ToList().Find(p => p.Cd_grupo.Equals(aux)).Ds_grupo.Trim(), Vl_cupom = venda.ToList().FindAll(x => x.Dt_emissao.Value.Month.Equals(y.Mes)).Sum(x => x.Vl_subtotalliquido), Vl_devolucao = venda.ToList().FindAll(x => x.Dt_emissao.Value.Month.Equals(y.Mes)).Sum(x => x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade)), VL_TotalLiquido = venda.ToList().FindAll(x => x.Dt_emissao.Value.Month.Equals(y.Mes)).Sum(x => x.Vl_subtotalliquido - (x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade))), }).Where(p => p.VL_TotalLiquido > decimal.Zero).OrderByDescending(p => p.VL_TotalLiquido).ToList().ForEach(p => lREmpresaGrupos.Add(p)); }); TList_ResumoEmpresa ListaEmpresaGrupos = new TList_ResumoEmpresa(); lREmpresaGrupos.ForEach(p => { if (ListaEmpresaGrupos.Count.Equals(0) || !ListaEmpresaGrupos.Exists(x => x.Ds_Mes.Equals(p.Ds_Mes))) { TRegistro_ResumoEmpresa r = new TRegistro_ResumoEmpresa(); r.Ds_grupo = p.Ds_Mes; r.Mes = p.Mes; ListaEmpresaGrupos.Add(r); } ListaEmpresaGrupos.Add(p); ListaEmpresaGrupos.FindLast(x => string.IsNullOrEmpty(x.Cd_grupo)).Vl_cupom += p.Vl_cupom; ListaEmpresaGrupos.FindLast(x => string.IsNullOrEmpty(x.Cd_grupo)).Vl_devolucao += p.Vl_devolucao; ListaEmpresaGrupos.FindLast(x => string.IsNullOrEmpty(x.Cd_grupo)).VL_TotalLiquido += p.VL_TotalLiquido; }); bsResumoEmpresaGrupos.DataSource = ListaEmpresaGrupos; #endregion #region Total Vendedor Mes TList_ResumoVendedor lRVendedor = new TList_ResumoVendedor(); (bsVendedor.DataSource as CamadaDados.Financeiro.Cadastros.TList_CadClifor).ForEach(y => { cbxVendedor.Items.Add(y.Nm_clifor); lItemVenda.GroupBy(p => p.Dt_emissao.Value.Month, (aux, venda) => new TRegistro_ResumoVendedor() { Mes = aux, Cd_vendedor = y.Cd_clifor, Nm_vendedor = y.Nm_clifor, Vl_cupom = venda.ToList().FindAll(x => x.Cd_vendedor.Equals(y.Cd_clifor)).Sum(x => x.Vl_subtotalliquido), Vl_devolucao = venda.ToList().FindAll(x => x.Cd_vendedor.Equals(y.Cd_clifor)).Sum(x => x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade)), Vl_TotalLiquido = (venda.ToList().FindAll(x => x.Cd_vendedor.Equals(y.Cd_clifor)).Sum(x => x.Vl_subtotalliquido - (x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade)))), }).Where(p => p.Vl_TotalLiquido > decimal.Zero).ToList().ForEach(p => lRVendedor.Add(p)); }); TList_ResumoVendedor ListaVendedorMes = new TList_ResumoVendedor(); lRVendedor.ForEach(p => { if (ListaVendedorMes.Count.Equals(0) || !ListaVendedorMes.Exists(x => x.Nm_vendedor.Equals(p.Nm_vendedor))) { TRegistro_ResumoVendedor r = new TRegistro_ResumoVendedor(); r.Nm_vendedor = p.Nm_vendedor; r.Ds_Mes = p.Nm_vendedor; ListaVendedorMes.Add(r); } ListaVendedorMes.Add(p); ListaVendedorMes.FindLast(x => x.Mes == 0).Vl_cupom += p.Vl_cupom; ListaVendedorMes.FindLast(x => x.Mes == 0).Vl_devolucao += p.Vl_devolucao; ListaVendedorMes.FindLast(x => x.Mes == 0).Vl_TotalLiquido += p.Vl_TotalLiquido; }); bsResumoVendedor.DataSource = ListaVendedorMes; #endregion } }