Exemple #1
0
 private void BuscarCFGVend()
 {
     if (!string.IsNullOrEmpty(CD_CompVend.Text))
     {
         cbTodos.Enabled = true;
         //Buscar CFG. Empresa
         lempresavend = CamadaNegocio.Faturamento.Cadastros.TCN_Vendedor_X_Empresa.Buscar(CD_CompVend.Text,
                                                                                          string.Empty,
                                                                                          null);
         cbCfgEmpresaVend.Enabled = lempresavend.Count > decimal.Zero;
         //Buscar CFG. Condição Pagamento
         lcondpagtovend = CamadaNegocio.Faturamento.Cadastros.TCN_Vendedor_X_CondPgto.Buscar(CD_CompVend.Text,
                                                                                             string.Empty,
                                                                                             null);
         cbCfgCondPagtoVend.Enabled = lcondpagtovend.Count > decimal.Zero;
         //Buscar CFG. Tabela Preço
         ltabprecovend = CamadaNegocio.Faturamento.Cadastros.TCN_Vendedor_X_TabelaPreco.Buscar(CD_CompVend.Text,
                                                                                               string.Empty,
                                                                                               null);
         cbCfgTabPrecoVend.Enabled = ltabprecovend.Count > decimal.Zero;
         //Buscar CFG.Carteira
         lcarteiravend = CamadaNegocio.Faturamento.Cadastros.TCN_Vendedor_X_RegiaoVenda.Buscar(CD_CompVend.Text,
                                                                                               string.Empty,
                                                                                               null);
         cbCfgCarteiraVend.Enabled = lcarteiravend.Count > decimal.Zero;
         //Buscar CFG. Grupo Produto
         lgrupoprodvend = CamadaNegocio.Faturamento.Cadastros.TCN_Vendedor_X_GrupoProd.Buscar(CD_CompVend.Text,
                                                                                              string.Empty,
                                                                                              null);
         cbCfgGrupoProdVend.Enabled = lgrupoprodvend.Count > decimal.Zero;
         //Buscar CFG. Desconto
         ldescontovend = CamadaNegocio.Faturamento.Cadastros.TCN_DescontoVendedor.Buscar(CD_CompVend.Text,
                                                                                         string.Empty,
                                                                                         string.Empty,
                                                                                         string.Empty,
                                                                                         null);
         cbCfgDescontoVend.Enabled = ldescontovend.Count > decimal.Zero;
     }
 }
Exemple #2
0
        private void bsVendedor_PositionChanged(object sender, EventArgs e)
        {
            if (bsMetasVendas.Current != null)
            {
                //Buscar Totais Vendas por Mês
                //Buscar Itens Vendas
                (bsMetasVendas.Current as TRegistro_Metas_VendasVendedor).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 = "a.cd_vendedor",
                        vOperador = "=",
                        vVL_Busca = "'" + (bsMetasVendas.Current as TRegistro_Metas_VendasVendedor).Cd_vendedor.Trim() + "'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "isnull(vr.st_registro, 'A')",
                        vOperador = "<>",
                        vVL_Busca = "'C'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "convert(datetime, floor(convert(decimal(30,10), vr.dt_emissao)))",
                        vOperador = ">=",
                        vVL_Busca = "'" + Convert.ToDateTime(new DateTime(int.Parse(cbxAno.Text), int.Parse((cbxMesMeta.SelectedIndex + 1).ToString()), 1)).ToString("dd/MM/yyyy") + "'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "convert(datetime, floor(convert(decimal(30,10), vr.dt_emissao)))",
                        vOperador = "<=",
                        vVL_Busca = "'" + Convert.ToDateTime(new DateTime(int.Parse(cbxAno.Text), int.Parse((cbxMesMeta.SelectedIndex + 1).ToString()),
                                                                          DateTime.DaysInMonth(int.Parse(cbxAno.Text), int.Parse((cbxMesMeta.SelectedIndex + 1).ToString())), 23, 59, 59)).ToString("dd/MM/yyyy") + "'"
                    }
                }, 0, string.Empty, string.Empty);

                //Buscar metas
                (bsMetasVendas.Current as TRegistro_Metas_VendasVendedor).lMeta =
                    CamadaNegocio.Faturamento.Cadastros.TCN_MetaVendedor.Buscar((bsMetasVendas.Current as TRegistro_Metas_VendasVendedor).Cd_vendedor,
                                                                                cbEmpresa.SelectedValue.ToString(),
                                                                                (cbxMesMeta.SelectedIndex + 1).ToString(),
                                                                                cbxAno.Text,
                                                                                null);
                //Formar Composicao da Comissão por Produto
                TList_ComposicaoComissao ListaComp = new TList_ComposicaoComissao();
                (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lComposicao.Clear();
                (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.FindAll(p => p.Pc_comissao > decimal.Zero).GroupBy(p =>
                                                                                                                                                                         p.Cd_produto, (aux, venda) =>
                                                                                                                                                                         new CamadaDados.Faturamento.Comissao.TRegistro_ComposicaoComissao()
                {
                    Cd_produto = aux,
                    Ds_produto = venda.ToList().Find(x => x.Cd_produto.Equals(aux)).Ds_produto,
                    Quantidade = (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.Where(x => x.Cd_produto.Equals(aux)).Count(),
                    Tot_venda  = (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.FindAll(x => x.Cd_produto.Equals(aux)).Sum(x =>
                                                                                                                                                                                  x.Vl_subtotalliquido - (x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade))),
                    Pc_comissao    = venda.ToList().Find(x => x.Cd_produto.Equals(aux)).Pc_comissao,
                    Total_comissao = Math.Round((bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.FindAll(x => x.Cd_produto.Equals(aux)).Sum(x =>
                                                                                                                                                                                                 x.Vl_subtotalliquido - (x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade))) *
                                                venda.ToList().Find(x => x.Cd_produto.Equals(aux)).Pc_comissao / 100, 2)
                }).ToList().ForEach(p => ListaComp.Add(p));

                //Buscar Composicao da Comissão por Grupo Produto
                CamadaDados.Faturamento.Cadastros.TList_Vendedor_X_GrupoProd lGrupo =
                    CamadaNegocio.Faturamento.Cadastros.TCN_Vendedor_X_GrupoProd.Buscar((bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).Cd_vendedor,
                                                                                        string.Empty,
                                                                                        null);
                if (lGrupo.Count > decimal.Zero)
                {
                    lGrupo.ForEach(y =>
                    {
                        (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.Where(p => p.Pc_comissao.Equals(decimal.Zero) && p.Cd_grupo.Equals(y.Cd_grupo)
                                                                                                                                    ).GroupBy(p =>
                                                                                                                                              p.Cd_grupo, (aux, venda) =>
                                                                                                                                              new CamadaDados.Faturamento.Comissao.TRegistro_ComposicaoComissao()
                        {
                            Cd_grupo   = aux,
                            Ds_grupo   = venda.ToList().Find(x => x.Cd_grupo.Equals(aux)).Ds_grupo,
                            Quantidade = (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.Where(x =>
                                                                                                                                                     x.Cd_grupo.Equals(aux) && x.Pc_comissao.Equals(decimal.Zero)).Count(),
                            Tot_venda = (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.FindAll(x =>
                                                                                                                                                      x.Cd_grupo.Equals(aux) && x.Pc_comissao.Equals(decimal.Zero)).Sum(x =>
                                                                                                                                                                                                                        x.Vl_subtotalliquido - (x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade))),
                            Pc_comissao    = y.Pc_Comissao,
                            Total_comissao = Math.Round((bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.FindAll(x =>
                                                                                                                                                                      x.Cd_grupo.Equals(aux) && x.Pc_comissao.Equals(decimal.Zero)).Sum(x =>
                                                                                                                                                                                                                                        x.Vl_subtotalliquido - (x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade))) * y.Pc_Comissao / 100, 2)
                        }).ToList().ForEach(p => ListaComp.Add(p));
                    });
                }
                //Formar Composição Comissão por Metas

                (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.Where(p => p.Pc_comissao.Equals(decimal.Zero) && !lGrupo.Exists(x => p.Cd_grupo.Equals(x.Cd_grupo))
                                                                                                                            ).GroupBy(p =>
                                                                                                                                      p.Cd_empresa, (aux, venda) =>
                                                                                                                                      new CamadaDados.Faturamento.Comissao.TRegistro_ComposicaoComissao()
                {
                    Quantidade = (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.Where(x =>
                                                                                                                                             x.Pc_comissao.Equals(decimal.Zero) && !lGrupo.Exists(k => x.Cd_grupo.Equals(k.Cd_grupo))).Count(),
                    Tot_venda = (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.FindAll(x =>
                                                                                                                                              x.Pc_comissao.Equals(decimal.Zero) && !lGrupo.Exists(k => x.Cd_grupo.Equals(k.Cd_grupo))).Sum(x =>
                                                                                                                                                                                                                                            x.Vl_subtotalliquido - (x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade))),
                    Pc_comissao    = (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).Pc_comissao,
                    Total_comissao = Math.Round((bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lItemVenda.FindAll(x =>
                                                                                                                                                              x.Pc_comissao.Equals(decimal.Zero) && !lGrupo.Exists(k => x.Cd_grupo.Equals(k.Cd_grupo))).Sum(x =>
                                                                                                                                                                                                                                                            x.Vl_subtotalliquido - (x.Qtd_devolvida * (x.Vl_subtotalliquido / x.Quantidade))) *
                                                (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).Pc_comissao / 100, 5)
                }).ToList().ForEach(p => ListaComp.Add(p));

                //Agrupar
                TList_ComposicaoComissao lista = new TList_ComposicaoComissao();
                ListaComp.ForEach(p =>
                {
                    if (lista.Count.Equals(0) || !lista.Exists(x => x.Ds_grupo.Equals(p.Tipo_comissao)))
                    {
                        if (p.Tipo_comissao != "META VENDEDOR")
                        {
                            TRegistro_ComposicaoComissao r = new TRegistro_ComposicaoComissao();
                            r.Ds_grupo = p.Tipo_comissao;
                            lista.Add(r);
                        }
                    }
                    p.Ds_grupo = !string.IsNullOrEmpty(p.Ds_grupo) ? p.Ds_grupo.Trim() :
                                 !string.IsNullOrEmpty(p.Ds_produto) ?  p.Ds_produto.Trim() : p.Tipo_comissao;
                    lista.Add(p);
                    if (p.Tipo_comissao != "META VENDEDOR")
                    {
                        lista.FindLast(x => string.IsNullOrEmpty(x.Cd_grupo) && string.IsNullOrEmpty(x.Cd_produto)).Quantidade     += p.Quantidade;
                        lista.FindLast(x => string.IsNullOrEmpty(x.Cd_grupo) && string.IsNullOrEmpty(x.Cd_produto)).Total_comissao += p.Total_comissao;
                        lista.FindLast(x => string.IsNullOrEmpty(x.Cd_grupo) && string.IsNullOrEmpty(x.Cd_produto)).Tot_venda      += p.Tot_venda;
                    }
                });
                lista.ForEach(p => (bsMetasVendas.Current as CamadaDados.Faturamento.Comissao.TRegistro_Metas_VendasVendedor).lComposicao.Add(p));

                //Totalizar
                tot_comissaocalc.Text =
                    ListaComp.Sum(p => p.Total_comissao).ToString("N2", new System.Globalization.CultureInfo("pt-BR"));

                bsMetasVendas.ResetCurrentItem();
            }
        }