private void gComissao_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { if (gComissao.Columns[e.ColumnIndex].SortMode == DataGridViewColumnSortMode.NotSortable) { return; } if (bsComissao.Count < 1) { return; } PropertyDescriptorCollection lP = TypeDescriptor.GetProperties(new CamadaDados.Faturamento.Comissao.TRegistro_Fechamento_Comissao()); CamadaDados.Faturamento.Comissao.TList_Fechamento_Comissao lComparer; SortOrder direcao = SortOrder.None; if ((gComissao.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection == SortOrder.None) || (gComissao.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection == SortOrder.Descending)) { lComparer = new CamadaDados.Faturamento.Comissao.TList_Fechamento_Comissao(lP.Find(gComissao.Columns[e.ColumnIndex].DataPropertyName, true), SortOrder.Ascending); foreach (DataGridViewColumn c in gComissao.Columns) { c.HeaderCell.SortGlyphDirection = SortOrder.None; } direcao = SortOrder.Ascending; } else { lComparer = new CamadaDados.Faturamento.Comissao.TList_Fechamento_Comissao(lP.Find(gComissao.Columns[e.ColumnIndex].DataPropertyName, true), SortOrder.Descending); foreach (DataGridViewColumn c in gComissao.Columns) { c.HeaderCell.SortGlyphDirection = SortOrder.None; } direcao = SortOrder.Descending; } (bsComissao.List as CamadaDados.Faturamento.Comissao.TList_Fechamento_Comissao).Sort(lComparer); bsComissao.ResetBindings(false); gComissao.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection = direcao; }
public static void ProcessarComissao(TRegistro_OutrasReceitas val, BancoDados.TObjetoBanco banco) { bool st_transacao = false; TCD_OutrasReceitas qtb_receita = new TCD_OutrasReceitas(); try { if (banco == null) { st_transacao = qtb_receita.CriarBanco_Dados(true); } else { qtb_receita.Banco_Dados = banco; } //Verificar se ja existe comissao CamadaDados.Faturamento.Comissao.TList_Fechamento_Comissao lComissao = CamadaNegocio.Faturamento.Comissao.TCN_Fechamento_Comissao.Buscar(string.Empty, val.Cd_empresa, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, val.Id_receitastr, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, qtb_receita.Banco_Dados); if (lComissao.Count > 0) { //Verificar se comissao possui faturamento if (new CamadaDados.Faturamento.Comissao.TCD_Comissao_X_Duplicata(qtb_receita.Banco_Dados).BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + lComissao[0].Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "a.id_comissao", vOperador = "=", vVL_Busca = lComissao[0].Id_comissaostr } }, "1") == null) { CamadaNegocio.Faturamento.Comissao.TCN_Fechamento_Comissao.Excluir(lComissao[0], qtb_receita.Banco_Dados); } else { throw new Exception("Receita possui comissão faturada. Obrigatorio antes cancelar faturamento comissão."); } } if (!string.IsNullOrEmpty(val.Cd_motorista)) { decimal vl_basecalc = val.Vl_receita; decimal pc_comissao = decimal.Zero; string tp_comissao = "P"; decimal vl_comissao = CamadaNegocio.Faturamento.Comissao.TCN_Fechamento_Comissao.CalcularComissao(val.Cd_empresa, val.Cd_motorista, string.Empty, string.Empty, string.Empty, decimal.Zero, ref vl_basecalc, ref pc_comissao, ref tp_comissao, qtb_receita.Banco_Dados); //Gravar fechamento comissao if (vl_comissao > decimal.Zero) { CamadaNegocio.Faturamento.Comissao.TCN_Fechamento_Comissao.Gravar( new CamadaDados.Faturamento.Comissao.TRegistro_Fechamento_Comissao() { Cd_empresa = val.Cd_empresa, Cd_vendedor = val.Cd_motorista, Dt_lancto = val.Dt_receita.HasValue ? val.Dt_receita : CamadaDados.UtilData.Data_Servidor(qtb_receita.Banco_Dados), Id_receita = val.Id_receita, Tp_comissao = tp_comissao, Pc_comissao = pc_comissao, Vl_basecalc = vl_basecalc, Vl_comissao = vl_comissao }, qtb_receita.Banco_Dados); if (st_transacao) { qtb_receita.Banco_Dados.Commit_Tran(); } } } } catch (Exception ex) { if (banco == null) { qtb_receita.Banco_Dados.RollBack_Tran(); } throw new Exception("Erro processar comissão: " + ex.Message.Trim()); } finally { if (st_transacao) { qtb_receita.deletarBanco_Dados(); } } }