private void btnMaisVendidos_Click(object sender, RoutedEventArgs e) { try { int quantidade = int.Parse(txtQuantidade.Text); List <Listagem.MaisVendidos> maisVendidos = Listagem.ListarMaisVendidos(quantidade); int i = 1; grdResultado.ItemsSource = from mv in maisVendidos select new { Indíce = i++, Produto = mv.Produto, Fabricante = mv.Fabricante, Vendidos = mv.Vendidos }; grdResultado.Columns[3].Header = "Quantidade de Vendidos"; lblResultado.Content = String.Format("Resultado: {0}° Produto(s) mais vendido(s)", quantidade); } catch { MessageBox.Show("Verifique se os dados estão preenchidos corretamente!", "Alerta"); } }
private void cmbCliente_SelectionChanged(object sender, SelectionChangedEventArgs e) { Cliente cliente = cmbCliente.SelectedItem as Cliente; int clienteId = cliente.ClienteId; List <Venda> vendas = Listagem.ListarPorCliente(clienteId); grdResultado.ItemsSource = from v in vendas select new { Id = v.VendaId, Cliente = v.Cliente.Nome, Data = v.Data.ToShortDateString(), Total1 = v.Total1.paraValorReal(), Desconto = v.Desconto + "%", Total2 = v.Total2.paraValorReal() }; if (grdResultado.Items.Count > 0) { grdResultado.Columns[3].Header = "Total sem desconto"; grdResultado.Columns[5].Header = "Total com desconto"; } lblResultado.Content = String.Format("Resultado: Vendas do Cliente {0}", cliente.Nome); }
private void btnVendaPeriodo_Click(object sender, RoutedEventArgs e) { try { DateTime inicio = DateTime.Parse(txtDataInicio.ToString()); DateTime fim = DateTime.Parse(txtDataFim.ToString()); List <Venda> vendas = Listagem.ListarPorPeriodo(inicio.ToString("yyyy-MM-dd"), fim.ToString("yyyy-MM-dd")); grdResultado.ItemsSource = from v in vendas select new { Id = v.VendaId, Cliente = v.Cliente.Nome, Data = v.Data.ToShortDateString(), Total1 = v.Total1.paraValorReal(), Desconto = v.Desconto + "%", Total2 = v.Total2.paraValorReal() }; grdResultado.Columns[3].Header = "Total sem desconto"; grdResultado.Columns[5].Header = "Total com desconto"; lblResultado.Content = String.Format("Resultado: Vendas de {0} até {1}", inicio.ToShortDateString(), fim.ToShortDateString()); } catch { MessageBox.Show("Verifique se os dados estão preenchidos corretamente!", "Alerta"); } }
public TarefaController(Listagem listagem, IContato _contato, ITarefa _tarefa, Validacao _validacao) { this.listagem = listagem; this._contato = _contato; this._tarefa = _tarefa; this._validacao = _validacao; }
public UsuarioRepository(long id, string nome, string url) { var listagem = new Listagem(); listagem.IdListagem = id; listagem.Nome = nome; listagem.Url = url; }
private void btnClientesVips_Click(object sender, RoutedEventArgs e) { grdResultado.ItemsSource = Listagem.ListarClientesVips(); grdResultado.Columns[0].Header = "Id"; lblResultado.Content = "Resultado: Clientes VIP's"; }
public void SetScrollOnBottom() { if (Listagem.ItemsSource != null) { var ultimoItemDaLista = Listagem.ItemsSource.Cast <object>().LastOrDefault(); Listagem.ScrollTo(ultimoItemDaLista, ScrollToPosition.MakeVisible, true); } }
public static Listagem <TDestino> Mapear <TOrigem, TDestino>(this Listagem <TOrigem> listaOriginal, IMapper mapper) where TDestino : class where TOrigem : class { Listagem <TDestino> retorno = new Listagem <TDestino>( listaOriginal.Lista.Mapear <TOrigem, TDestino>(mapper), listaOriginal.Paginacao); return(retorno); }
public Listagem GetLista(Listagem valor, Listagem[] valores) { return(Listagem.Valor1); }
/// <summary> /// TODO: refatorar para otimizar. /// </summary> public DataTable CarregaRelacaoEmAberto(String nomeListagem, String mensagemListagem, String[] filialIDs, String[] operadoraIDs, String[] perfilIDs, DateTime?dataCorte, Object produtorId) { #region variáveis Object grupoId = null; List <CobrancaCorretorChefiaVO> vos = new List <CobrancaCorretorChefiaVO>(); DataTable dt = null, resultado = new DataTable(); Usuario corretor = null; ComissionamentoUsuario comU = null; DateTime?vigencia = null, admissao = null; IList <ComissionamentoItem> itensComissionamento = null; ComissionamentoVitaliciedade itemVitaliciedade = null; IList <SuperiorSubordinado> superiores = null; System.Globalization.CultureInfo cinfo = new System.Globalization.CultureInfo("pt-Br"); Int32 tipoContrato = -1, parcela = -1; Decimal valorComissao = 0, creditos = 0, percentualComissao = 0, valorPago = 0; List <MovimentacaoContaCorrente> itensCC = null; MovimentacaoContaCorrente itemCC = null; TipoContrato.TipoComissionamentoProdutorOuOperadora tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Normal; UsuarioFilial usuarioFilial = null; Comissionamento comissionamentoModelo = null; Contrato contrato = null; IList <TabelaValor> tabelasValor = null; Taxa taxa = null; #endregion #region configura DataTable resultado resultado.Columns.Add("CobrancaID"); resultado.Columns.Add("CobrancaVencimento"); resultado.Columns.Add("ContratoNumero"); resultado.Columns.Add("ContratoID"); resultado.Columns.Add("ContratoVigencia"); resultado.Columns.Add("OperadoraID"); resultado.Columns.Add("OperadoraNome"); resultado.Columns.Add("CobrancaValorPago"); resultado.Columns.Add("CobrancaDataPago"); resultado.Columns.Add("CobrancaParcela"); resultado.Columns.Add("ProdutorID"); resultado.Columns.Add("ProdutorNome"); resultado.Columns.Add("ProdutorValor"); resultado.Columns.Add("ProdutorPercentualComissao"); resultado.Columns.Add("ProdutorCredito"); resultado.Columns.Add("ProdutorPerfilID"); resultado.Columns.Add("ProdutorApelido"); resultado.Columns.Add("SuperiorApelido"); resultado.Columns.Add("NomeTitular"); resultado.Columns.Add("ContratoAdmissao"); resultado.Columns.Add("FecharComissao"); resultado.Columns.Add("ProdutorBanco"); resultado.Columns.Add("ProdutorAgencia"); resultado.Columns.Add("ProdutorConta"); #endregion #region configura parâmetros da query String filiaisParam = "", operadorasParam = "", perfisParam = "", dataParam = ""; if (filialIDs != null && filialIDs.Length > 0) { filiaisParam = String.Concat(" AND usuariofilial_filialId IN (", String.Join(",", filialIDs), ") "); //String.Concat(" AND almox_produto_filialId IN (", String.Join(",", filialIDs), ") "); //filiaisParam = String.Concat(" AND usuariofilial_data <= contrato_admissao AND usuario_filialId IN (", String.Join(",", filialIDs), ") "); } if (operadoraIDs != null && operadoraIDs.Length > 0) { operadorasParam = String.Concat(" AND contrato_operadoraId IN (", String.Join(",", operadoraIDs), ") "); } if (perfilIDs != null && perfilIDs.Length > 0) { perfisParam = String.Join(",", perfilIDs); } if (dataCorte != null) { dataParam = String.Concat(" AND cobranca_dataPagto <= '", dataCorte.Value.ToString("yyyy-MM-dd 23:59:59.700"), "' "); } #endregion //faz join com a tabela de usuários para poder usar o filtro por filiais! String qry = String.Concat("cobranca.*, beneficiario_nome, contrato_cobrarTaxaAssociativa, contrato_donoId, contrato_numero, contrato_contratoAdmId, contrato_admissao, contrato_vigencia, contrato_tipoContratoId, operadora_id, operadora_nome ", " FROM cobranca ", " INNER JOIN contrato ON cobranca_propostaId=contrato_id ", //" INNER JOIN almox_contrato_impresso ON almox_contratoimp_id=contrato_numeroId ", //" INNER JOIN almox_produto ON almox_produto_id=almox_contratoimp_produtoId ", " INNER JOIN operadora ON operadora_id=contrato_operadoraId ", " INNER JOIN contrato_beneficiario ON contratobeneficiario_contratoId=contrato_id AND contratobeneficiario_tipo=", Convert.ToInt32(ContratoBeneficiario.TipoRelacao.Titular), " INNER JOIN beneficiario ON beneficiario_id=contratobeneficiario_beneficiarioId AND contratobeneficiario_tipo=", Convert.ToInt32(ContratoBeneficiario.TipoRelacao.Titular), " INNER JOIN usuario ON usuario_id=contrato_donoId ", " INNER JOIN usuario_filial ON usuario_id=usuariofilial_usuarioId ", " WHERE ", " (cobranca_comissaoPaga=0 OR cobranca_comissaoPaga IS NULL) AND cobranca_pago=1 AND cobranca_parcela > 1 ", filiaisParam, operadorasParam, dataParam); PersistenceManager pm = new PersistenceManager(); pm.BeginTransactionContext(); try { dt = LocatorHelper.Instance.ExecuteQuery(qry, "resultset", pm).Tables[0]; if (dt.Rows.Count == 0) { pm.Commit(); dt.Dispose(); return(null); } //ARMAZENA todos os corretores em uma colecao de ids de corretor, sem duplicar. System.Collections.ArrayList array = new System.Collections.ArrayList(); foreach (DataRow row in dt.Rows) { if (!array.Contains(Convert.ToString(row["contrato_donoId"]))) { array.Add(Convert.ToString(row["contrato_donoId"])); } } #region Salva a listagem ------------------------------------------------------------ Listagem listagem = new Listagem(); listagem.Nome = nomeListagem; listagem.Mensagem = mensagemListagem; if (dataCorte != null) { listagem.DataCorte = dataCorte.Value; } pm.Save(listagem); #region filiais if (filialIDs != null && filialIDs.Length > 0) { Listagem.Filial lf; foreach (String filialID in filialIDs) { lf = new Listagem.Filial(); lf.ListagemID = listagem.ID; lf.FilialID = filialID; pm.Save(lf); } } #endregion #region operadoras if (operadoraIDs != null && operadoraIDs.Length > 0) { Listagem.Operadora lo; foreach (String operadoraID in operadoraIDs) { lo = new Listagem.Operadora(); lo.ListagemID = listagem.ID; lo.OperadoraID = operadoraID; pm.Save(lo); } } #endregion #region perfis if (perfilIDs != null && perfilIDs.Length > 0) { Listagem.Perfil lp; foreach (String perfilID in perfilIDs) { lp = new Listagem.Perfil(); lp.ListagemID = listagem.ID; lp.PerfilID = perfilID; pm.Save(lp); } } #endregion #endregion //passeia por todos os corretores DataRow[] rows; DataRow resultadoLinha; foreach (Object corretorId in array) { //percorre os contratos do corretor corrente rows = dt.Select("contrato_donoId=" + corretorId); foreach (DataRow row in rows) { valorComissao = 0; vigencia = Convert.ToDateTime(row["contrato_vigencia"], cinfo); admissao = Convert.ToDateTime(row["contrato_admissao"], cinfo); usuarioFilial = UsuarioFilial.CarregarVigente(row["contrato_donoId"], admissao.Value, pm); if (usuarioFilial == null || !contemValor(filialIDs, usuarioFilial.FilialID)) { continue; } //Corretor corretor = new Usuario(row["contrato_donoId"]); pm.Load(corretor); //comissao do corretor - leva em consideracao a data de admissao do contrato comU = ComissionamentoUsuario.CarregarVigente(corretor.ID, vigencia, pm); if (comU != null) { resultadoLinha = resultado.NewRow(); #region preenche a linha resultadoLinha["CobrancaID"] = row["cobranca_id"]; resultadoLinha["CobrancaVencimento"] = Convert.ToDateTime(row["cobranca_dataVencimento"], cinfo).ToString("dd/MM/yyyy"); valorPago = Convert.ToDecimal(row["cobranca_valor"], cinfo); //if (cToString(row["contrato_cobrarTaxaAssociativa"]) == "1") //{ // contrato = Contrato.CarregarParcial(row["cobranca_propostaId"], pm); // valorPago -= Contrato.CalculaValorDaTaxaAssociativa(contrato, -1, pm); //} //tabelasValor = TabelaValor.CarregarPorContratoID_Parcial(row["contrato_contratoAdmId"], pm); //if (tabelasValor != null) //{ // if (tabelasValor.Count == 1) // { // taxa = Taxa.CarregarPorTabela(tabelasValor[0].ID, pm); // if (taxa != null && !taxa.Embutido && taxa.ValorEmbutido > 0) // { // valorPago -= taxa.ValorEmbutido; // } // } // else // { // //o que fazer... // } //} resultadoLinha["CobrancaValorPago"] = valorPago.ToString("N2"); resultadoLinha["CobrancaDataPago"] = Convert.ToDateTime(row["cobranca_dataPagto"], cinfo).ToString("dd/MM/yyyy"); resultadoLinha["ContratoNumero"] = row["contrato_numero"]; resultadoLinha["ContratoID"] = row["cobranca_propostaId"]; resultadoLinha["ContratoVigencia"] = Convert.ToDateTime(row["contrato_vigencia"], cinfo).ToString("dd/MM/yyyy"); resultadoLinha["CobrancaParcela"] = row["cobranca_parcela"]; resultadoLinha["OperadoraID"] = row["operadora_id"]; resultadoLinha["OperadoraNome"] = row["operadora_nome"]; resultadoLinha["ProdutorID"] = row["contrato_donoId"]; resultadoLinha["ProdutorPerfilID"] = corretor.PerfilID; resultadoLinha["ProdutorApelido"] = corretor.Apelido; resultadoLinha["NomeTitular"] = row["beneficiario_nome"]; resultadoLinha["ContratoAdmissao"] = Convert.ToDateTime(row["contrato_admissao"], cinfo).ToString("dd/MM/yyyy"); resultadoLinha["ProdutorBanco"] = corretor.Banco; resultadoLinha["ProdutorAgencia"] = corretor.Agencia; resultadoLinha["ProdutorConta"] = corretor.Conta; resultadoLinha["FecharComissao"] = "0"; #endregion #region Comissionamento percentualComissao = 0; comissionamentoModelo = new Comissionamento(comU.TabelaComissionamentoID); pm.Load(comissionamentoModelo); grupoId = ComissionamentoGrupo.ObterID(comissionamentoModelo.ID, row["contrato_contratoAdmId"], pm); if (grupoId != null) { itensComissionamento = ComissionamentoItem.Carregar(grupoId, pm); } else { continue; } if (itensComissionamento != null) { parcela = Convert.ToInt32(row["cobranca_parcela"]); tipoContrato = Convert.ToInt32(row["contrato_tipoContratoId"]); foreach (ComissionamentoItem item in itensComissionamento) { if (parcela == item.Parcela) { if (tipoContrato == 1) //normal { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Normal; valorComissao = valorPago * (item.Percentual / 100); percentualComissao = item.Percentual; break; } else if (tipoContrato == 4) //carencia { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Carencia; valorComissao = valorPago * (item.PercentualCompraCarencia / 100); percentualComissao = item.PercentualCompraCarencia; break; } else if (tipoContrato == 3) //migracao { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Migracao; valorComissao = valorPago * (item.PercentualMigracao / 100); percentualComissao = item.PercentualMigracao; break; } else if (tipoContrato == 2) //adm { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Administrativa; valorComissao = valorPago * (item.PercentualADM / 100); percentualComissao = item.PercentualADM; break; } else if (tipoContrato == 5) //especial { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Especial; valorComissao = valorPago * (item.PercentualEspecial / 100); percentualComissao = item.PercentualEspecial; break; } else if (tipoContrato == 6) //idade { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Idade; valorComissao = valorPago * (item.Idade / 100); percentualComissao = item.Idade; break; } } } } #endregion #region Vitaliciedade - COMO EXIBIR NO RELATORIO ESTE PERCENTUAL DE COMISSAO ??? //itemVitaliciedade = ComissionamentoVitaliciedade.Carregar(comU.TabelaComissionamentoID, row["contrato_contratoAdmId"], tipoComissionamento, pm); itemVitaliciedade = ComissionamentoVitaliciedade.Carregar(grupoId, tipoComissionamento, pm); if (itemVitaliciedade != null && itemVitaliciedade.ParcelaInicio >= parcela) { valorComissao += (valorPago * (itemVitaliciedade.Percentual / 100)); } #endregion resultadoLinha["ProdutorNome"] = corretor.Nome; resultadoLinha["ProdutorValor"] = valorComissao.ToString("N2"); resultadoLinha["ProdutorPercentualComissao"] = percentualComissao.ToString("N2"); //se nao foi informado um produtor especifico ou //foi informado e é o mesmo que o dono do contrato (corretor que vendeu) if (produtorId == null || Convert.ToString(produtorId) == Convert.ToString(corretor.ID)) { //checa também se o perfil está incluso na relacao de perfis enviada por parametro if (perfilIDs == null || contemValor(perfilIDs, corretor.PerfilID)) { resultadoLinha["FecharComissao"] = "1"; #region itens abertos na conta corrente creditos = 0; itensCC = (List <MovimentacaoContaCorrente>)MovimentacaoContaCorrente.CarregarEmAberto(corretor.ID, dataCorte.Value, pm); if (itensCC == null) { itensCC = new List <MovimentacaoContaCorrente>(); } //só salva o credito se ele ainda nao foi feito. if (valorComissao > 0 && !MovimentacaoContaCorrente.CreditoJaFeitoPara(corretor.ID, row["cobranca_id"], pm)) //itemCC != null && itemCC.Valor > 0) { itemCC = new MovimentacaoContaCorrente(); itemCC.CategoriaID = CategoriaContaCorrente.SysPremiacaoCategoriaID; itemCC.CobrancaID = row["cobranca_id"]; itemCC.Data = DateTime.Now; itemCC.LisagemFechamentoID = listagem.ID; itemCC.ProdutorID = corretor.ID; itemCC.Valor = valorComissao; pm.Save(itemCC); } foreach (MovimentacaoContaCorrente _item in itensCC) { if (CategoriaContaCorrente.eTipo.Credito == (CategoriaContaCorrente.eTipo)_item.CategoriaTipo) { creditos += _item.Valor; } else { creditos -= _item.Valor; } _item.LisagemFechamentoID = listagem.ID; pm.Save(_item); } #endregion } } resultadoLinha["ProdutorCredito"] = creditos.ToString("N2"); resultado.Rows.Add(resultadoLinha); adicionaGrafoDeProdutoresParaCobranca(ref vos, row["cobranca_id"], corretor.ID, false); //salvarGrafoEquipe(corretor.ID, corretor.PerfilID, listagem.ID, pm); } //Superiores superiores = SuperiorSubordinado.CarregarSuperiores(corretor.ID, admissao, pm); while (superiores != null && superiores.Count > 0) { valorComissao = 0; comU = ComissionamentoUsuario.CarregarVigente(superiores[0].SuperiorID, vigencia, pm); if (superiores[0].SubordinadoID.ToString() == corretor.ID.ToString()) { salvarGrafoEquipeCorretor(corretor.ID, corretor.PerfilID, listagem.ID, pm); } //salvarGrafoEquipe(superiores[0], listagem.ID, pm); if (comU == null) { superiores = SuperiorSubordinado.CarregarSuperiores(superiores[0].SuperiorID, admissao, pm); continue; } comissionamentoModelo = new Comissionamento(comU.TabelaComissionamentoID); pm.Load(comissionamentoModelo); salvarGrafoEquipe(superiores[0], listagem.ID, pm); if (comU != null) { resultadoLinha = resultado.NewRow(); #region preenche a linha resultadoLinha["CobrancaID"] = row["cobranca_id"]; resultadoLinha["CobrancaVencimento"] = Convert.ToDateTime(row["cobranca_dataVencimento"], cinfo).ToString("dd/MM/yyyy"); resultadoLinha["CobrancaValorPago"] = valorPago; //Convert.ToDecimal(row["cobranca_valorPagto"], cinfo).ToString("N2"); resultadoLinha["CobrancaDataPago"] = Convert.ToDateTime(row["cobranca_dataPagto"], cinfo).ToString("dd/MM/yyyy"); resultadoLinha["CobrancaParcela"] = row["cobranca_parcela"]; resultadoLinha["ContratoNumero"] = row["contrato_numero"]; resultadoLinha["ContratoID"] = row["cobranca_propostaId"]; resultadoLinha["ContratoVigencia"] = Convert.ToDateTime(row["contrato_vigencia"], cinfo).ToString("dd/MM/yyyy"); resultadoLinha["OperadoraID"] = row["operadora_id"]; resultadoLinha["OperadoraNome"] = row["operadora_nome"]; resultadoLinha["ProdutorID"] = superiores[0].SuperiorID; resultadoLinha["ProdutorPerfilID"] = superiores[0].SuperiorPerfilID; resultadoLinha["ProdutorApelido"] = superiores[0].SuperiorApelido; resultadoLinha["NomeTitular"] = row["beneficiario_nome"]; resultadoLinha["ContratoAdmissao"] = Convert.ToDateTime(row["contrato_admissao"], cinfo).ToString("dd/MM/yyyy"); resultadoLinha["FecharComissao"] = "0"; resultadoLinha["ProdutorBanco"] = superiores[0].SuperiorBanco; resultadoLinha["ProdutorAgencia"] = superiores[0].SuperiorAgencia; resultadoLinha["ProdutorConta"] = superiores[0].SuperiorConta; #endregion #region Comissionamento comissionamentoModelo = new Comissionamento(comU.TabelaComissionamentoID); pm.Load(comissionamentoModelo); itensComissionamento = ComissionamentoItem.Carregar(comissionamentoModelo.GrupoID, pm); valorComissao = 0; percentualComissao = 0; if (itensComissionamento != null) { parcela = Convert.ToInt32(row["cobranca_parcela"]); tipoContrato = Convert.ToInt32(row["contrato_tipoContratoId"]); foreach (ComissionamentoItem item in itensComissionamento) { if (parcela == item.Parcela) { if (tipoContrato == 1) //normal { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Normal; valorComissao = valorPago * (item.Percentual / 100); percentualComissao = item.Percentual; break; } else if (tipoContrato == 4) //carencia { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Carencia; valorComissao = valorPago * (item.PercentualCompraCarencia / 100); percentualComissao = item.PercentualCompraCarencia; break; } else if (tipoContrato == 3) //migracao { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Migracao; valorComissao = valorPago * (item.PercentualMigracao / 100); percentualComissao = item.PercentualMigracao; break; } else if (tipoContrato == 2) //adm { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Administrativa; valorComissao = valorPago * (item.PercentualADM / 100); percentualComissao = item.PercentualADM; break; } else if (tipoContrato == 5) //especial { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Especial; valorComissao = valorPago * (item.PercentualEspecial / 100); percentualComissao = item.PercentualEspecial; break; } else if (tipoContrato == 6) //idade { tipoComissionamento = TipoContrato.TipoComissionamentoProdutorOuOperadora.Idade; valorComissao = valorPago * (item.Idade / 100); percentualComissao = item.Idade; break; } } } } #endregion #region Vitaliciedade COMO EXIBIR NO RELATORIO ESTE PERCENTUAL DE COMISSAO ??? itemVitaliciedade = ComissionamentoVitaliciedade.Carregar(grupoId, tipoComissionamento, pm); //ComissionamentoVitaliciedade.Carregar(comissionamentoModelo.GrupoID, tipoComissionamento, pm); if (itemVitaliciedade != null && itemVitaliciedade.ParcelaInicio >= parcela) { valorComissao += (valorPago * (itemVitaliciedade.Percentual / 100)); } #endregion atualizaApelidoSuperior(ref resultado, superiores[0].SubordinadoID, superiores[0].SuperiorApelido); resultadoLinha["ProdutorNome"] = superiores[0].SuperiorNome; resultadoLinha["ProdutorValor"] = valorComissao.ToString("N2"); resultadoLinha["ProdutorPercentualComissao"] = percentualComissao.ToString("N2"); //se nao foi informado um produtor especifico ou //foi informado e é o mesmo que o produtor corrente if (produtorId == null || Convert.ToString(produtorId) == Convert.ToString(superiores[0].SuperiorID)) { //checa também se o perfil está incluso na relacao de perfis enviada por parametro if (perfilIDs == null || contemValor(perfilIDs, superiores[0].SuperiorPerfilID)) { resultadoLinha["FecharComissao"] = "1"; #region itens abertos na conta corrente creditos = 0; itensCC = (List <MovimentacaoContaCorrente>)MovimentacaoContaCorrente.CarregarEmAberto(superiores[0].SuperiorID, dataCorte.Value, pm); if (itensCC == null) { itensCC = new List <MovimentacaoContaCorrente>(); } //só salva o credito se ele ainda nao foi feito. if (valorComissao > 0 && !MovimentacaoContaCorrente.CreditoJaFeitoPara(superiores[0].SuperiorID, row["cobranca_id"], pm)) { itemCC = new MovimentacaoContaCorrente(); itemCC.CategoriaID = CategoriaContaCorrente.SysPremiacaoCategoriaID; itemCC.CobrancaID = row["cobranca_id"]; itemCC.Data = DateTime.Now; itemCC.LisagemFechamentoID = listagem.ID; itemCC.ProdutorID = superiores[0].SuperiorID; itemCC.Valor = valorComissao; pm.Save(itemCC); } foreach (MovimentacaoContaCorrente _item in itensCC) { if (CategoriaContaCorrente.eTipo.Credito == (CategoriaContaCorrente.eTipo)_item.CategoriaTipo) { creditos += _item.Valor; } else { creditos -= _item.Valor; } _item.LisagemFechamentoID = listagem.ID; pm.Save(_item); } #endregion } } resultadoLinha["ProdutorCredito"] = creditos.ToString("N2"); resultado.Rows.Add(resultadoLinha); adicionaGrafoDeProdutoresParaCobranca(ref vos, row["cobranca_id"], superiores[0].SuperiorID, true); } superiores = SuperiorSubordinado.CarregarSuperiores(superiores[0].SuperiorID, admissao, pm); } } } //salva a relacao de pagamento de comissao salvarRelacao(resultado, listagem.ID, pm); //baixa as cobrancas que devem ser baixadas //baixarCobrancas(vos, pm); pm.Commit(); } catch (Exception ex) { pm.Rollback(); throw ex; } finally { dt.Dispose(); pm = null; } return(resultado); }