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