private Verba GetSelectedVerba(int verbaId)
        {
            Verba founded = null;

            foreach (var verba in this.verbas)
            {
                if (verba.Id == verbaId)
                {
                    founded = verba;
                    break;
                }
            }
            return(founded);
        }
Example #2
0
        private void btnSaveAliq_Click(object sender, EventArgs e)
        {
            Cliente          cliente  = this.cbClientes.SelectedItem as Cliente;
            Contrato         contrato = this.cbContratos.SelectedItem as Contrato;
            Verba            verba    = this.cbVerbasFilter.SelectedItem as Verba;
            ContratoAliquota cAliq    = new ContratoAliquota();

            if (cliente != null)
            {
                cAliq.Cliente = cliente;
            }

            if (contrato != null)
            {
                cAliq.Contrato = contrato;
            }

            if (verba != null)
            {
                cAliq.Verba = verba;
            }

            cAliq.Aliquota = Convert.ToDouble(txtAliquota.Text);
            cAliq.Ano      = Convert.ToInt32(txtAno.Text);

            try
            {
                _facade.InserirContratoAliquota(cAliq);
                MessageBox.Show("Alíquota da Verba " + verba.Nome + " cadastrada com sucesso.",
                                "Cadastro de Alíquotas de Verbas", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocorreu o seguinte erro: " + ex.Message, "Erro no Cadastro da Alíquota", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #3
0
 public void InserirVerba(Verba verba)
 {
     this._verbaDAO.Insert(verba);
 }
Example #4
0
 public void UpdateVerba(int id, Verba verba)
 {
     this._verbaDAO.Update <int>(id, verba);
 }
        public List <ContratoAliquota> GetTop()
        {
            string cmdSeleciona = "SELECT cont_ali.id as cont_ali_id, cont.id as cont_id, "
                                  + "cont.nome as cont_nome, cont.codigo as cont_codigo, cont.id_soll as cont_id_soll, "
                                  + "cli.id as cli_id, cli.nome as cli_nome, cli.id_soll as cli_id_soll, "
                                  + "cont.inicio as cont_inicio, cont.termino as cont_termino, "
                                  + "verb.id as verb_id, verb.nome as verb_nome, verb.codigo as verb_codigo, verb.primaria as verb_prim, "
                                  + "cont_ali.aliquota as cont_ali_aliquota, cont_ali.ano as cont_ali_ano "
                                  + "FROM (contrato_aliquotas cont_ali LEFT JOIN contrato cont ON "
                                  + "(cont_ali.id_contrato = cont.id)) "
                                  + "INNER JOIN verbas verb ON (cont_ali.id_verba = verb.id) "
                                  + "INNER JOIN cliente cli ON (cont_ali.id_cliente = cli.id) "
                                  + "ORDER BY cont_ali.ano ASC";

            List <ContratoAliquota> contratoAliquotas = new List <ContratoAliquota>();
            NpgsqlDataReader        reader            = null;

            try
            {
                dal.OpenConnection();
                reader = dal.ExecuteDataReader(cmdSeleciona);

                while (reader.Read())
                {
                    ContratoAliquota contratoAliquota = new ContratoAliquota();

                    Verba verba = new Verba(Convert.ToInt32(reader["verb_id"]), Convert.ToInt32(reader["verb_codigo"]),
                                            reader["verb_nome"].ToString(), Convert.ToBoolean(reader["verb_prim"]));

                    Cliente cli = new Cliente(Convert.ToInt32(reader["cli_id"]),
                                              reader["cli_id_soll"].ToString(), reader["cli_nome"].ToString());

                    Contrato contr = null;
                    if (!(reader["cont_id"] is DBNull) && !(reader["cont_nome"] is DBNull) && !(reader["cont_id_soll"] is DBNull))
                    {
                        contr = new Contrato(Convert.ToInt32(reader["cont_id"]), reader["cont_nome"].ToString(),
                                             reader["cont_id_soll"].ToString(), cli);
                    }

                    //Unidade unidade = null;
                    //if (contr != null && !(reader["und_id"] is DBNull))
                    //{
                    //    unidade = new Unidade(Convert.ToInt32(reader["und_id"]),
                    //        reader["und_nome"].ToString(), reader["und_id_soll"].ToString());
                    //    unidade.Contrato = contr;
                    //}

                    contratoAliquota.Id       = Convert.ToInt32(reader["cont_ali_id"]);
                    contratoAliquota.Ano      = Convert.ToInt32(reader["cont_ali_ano"]);
                    contratoAliquota.Aliquota = Convert.ToDouble(reader["cont_ali_aliquota"]);
                    contratoAliquota.Cliente  = cli;
                    contratoAliquota.Contrato = contr;
                    contratoAliquota.Verba    = verba;

                    //if (unidade != null)
                    //{
                    //    contratoAliquota.Unidade = unidade;
                    //}
                    contratoAliquotas.Add(contratoAliquota);
                }
                reader.Close();
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
                this.dal.CloseConection();
            }
            return(contratoAliquotas);
        }
        private void BuildOutput(DateTime start, DateTime end)
        {
            List <HistoricoFuncionario> histFuncs = _facade.GetHistoricoByDatas(start, end);

            txtResult.Clear();
            exportVerba = new ExportVerba();
            string periodo = "Período: " + start.Month + "/" + start.Year + " até " + end.Month + "/" + end.Year;

            exportVerba.Periodo = periodo;
            Verba selectedVerba = (Verba)this.cbVerbasFilter.SelectedItem;

            exportVerba.Verba = selectedVerba;
            int verbaId = selectedVerba.Id;

            List <ContratoAliquota> filteredContratoAliquotas;

            if (verbaId != -1)
            {
                filteredContratoAliquotas = FilteredContratoAliquotas(verbaId, allContratosAliquotas);
            }
            else
            {
                filteredContratoAliquotas = allContratosAliquotas;
            }

            StringBuilder stb = new StringBuilder();

            stb.AppendLine("Foram encontradas " + histFuncs.Count + " ocorrências");
            //stb.AppendLine("ID: " + contratoID);
            //stb.AppendLine("Nome: " + contratoName);
            stb.AppendLine("Verba selecionada: " + selectedVerba.Nome);
            stb.AppendLine(periodo);

            stb.AppendLine("---------------------------------------------------------------");

            List <RelatorioCliente> relatorioClientes = new List <RelatorioCliente>();
            List <ContratoAliquota> aliquotasList     = new List <ContratoAliquota>();
            RelatorioCliente        relCliente;

            foreach (var histFunc in histFuncs)
            {
                if (histFunc.Contrato == null)
                {
                    relCliente = new RelatorioCliente(histFunc.Cliente, histFunc.Funcionario, histFunc.Data.Year);
                }
                else
                {
                    relCliente = new RelatorioCliente(histFunc.Contrato, histFunc.Funcionario, histFunc.Data.Year);
                }

                if (!relatorioClientes.Contains(relCliente))
                {
                    aliquotasList = RelatoriosUtil.FilterAliquotas(histFunc, filteredContratoAliquotas);
                    foreach (var aliqObj in aliquotasList)
                    {
                        relCliente.computarValores(histFunc.SalarioBase, aliqObj.Verba, aliqObj.Aliquota);
                    }

                    relatorioClientes.Add(relCliente);
                }
                else
                {
                    int index = relatorioClientes.IndexOf(relCliente);
                    foreach (var aliqObj in aliquotasList)
                    {
                        relatorioClientes[index].computarValores(histFunc.SalarioBase, aliqObj.Verba, aliqObj.Aliquota);
                    }
                }
            }

            foreach (var relC in relatorioClientes)
            {
                stb.AppendLine("********************************************************");
                stb.AppendLine("Cliente: " + relC.Contrato.Cliente.Name);
                stb.AppendLine("Contrato: " + relC.Contrato.Name);
                stb.AppendLine("Funcionário: " + relC.Funcionario.Name);
                stb.AppendLine("Referência: " + relC.Ano);

                if (verbaId == -1) //calcular todas
                {
                    string moneyAF = String.Format("{0:C}", relC.AcumuladoFerias);
                    stb.AppendLine("Férias: " + moneyAF);
                    string moneyAD = String.Format("{0:C}", relC.AcumuladoDecimo);
                    stb.AppendLine("Décimo Salário: " + moneyAD);
                    string moneyAM = String.Format("{0:C}", relC.AcumuladoMulta);
                    stb.AppendLine("Multa: " + moneyAM);
                    string moneyAL = String.Format("{0:C}", relC.AcumuladoLucro);
                    stb.AppendLine("Lucro: " + moneyAL);
                    string moneyAES = String.Format("{0:C}", relC.AcumuladoEncSociais);
                    stb.AppendLine("Encargos Sociais: " + moneyAES);
                }
                else
                {
                    if (selectedVerba.Codigo == 1) //Férias
                    {
                        string moneyAF = String.Format("{0:C}", relC.AcumuladoFerias);
                        stb.AppendLine("Férias: " + moneyAF);
                    }
                    else if (selectedVerba.Codigo == 2)
                    {
                        string moneyAD = String.Format("{0:C}", relC.AcumuladoDecimo);
                        stb.AppendLine("Décimo Salário: " + moneyAD);
                    }
                    else if (selectedVerba.Codigo == 3)
                    {
                        string moneyAM = String.Format("{0:C}", relC.AcumuladoMulta);
                        stb.AppendLine("Multa: " + moneyAM);
                    }
                    else if (selectedVerba.Codigo == 4)
                    {
                        string moneyAL = String.Format("{0:C}", relC.AcumuladoLucro);
                        stb.AppendLine("Lucro: " + moneyAL);
                    }
                    else if (selectedVerba.Codigo == 5)
                    {
                        string moneyAES = String.Format("{0:C}", relC.AcumuladoEncSociais);
                        stb.AppendLine("Encargos Sociais: " + moneyAES);
                    }
                }
                stb.AppendLine("********************************************************");
                exportVerba.RelClientes.Add(relC);
            }

            txtResult.Text = stb.ToString();
        }
        private void searchFuncionario(string funcionarioMatr, DateTime start, DateTime end)
        {
            Funcionario funcionario = _facade.GetFuncionarioByMatricula(funcionarioMatr);

            txtResult.Clear();
            exportFuncionario             = new ExportFuncionario();
            exportFuncionario.Funcionario = funcionario;
            string periodo = "Período: " + start.Month + "/" + start.Year + " até " + end.Month + "/" + end.Year;

            exportFuncionario.Periodo = periodo;
            Verba selectedVerba = (Verba)this.cbVerbasFilter.SelectedItem;

            exportFuncionario.Verba = selectedVerba;
            int verbaId = selectedVerba.Id;

            List <ContratoAliquota> filteredContratoAliquotas;

            //Filtra o tipo de VERBA em filteredContratoAliquotas
            if (verbaId != -1)
            {
                filteredContratoAliquotas = FilteredContratoAliquotas(verbaId, allContratosAliquotas);
            }
            else
            {
                filteredContratoAliquotas = allContratosAliquotas;
            }

            List <HistoricoFuncionario> histFuncList = _facade.GetHistoricoByFuncAndDatas(
                funcionario.Id, start, end);

            StringBuilder stb = new StringBuilder();

            stb.AppendLine("Foram encontradas " + histFuncList.Count + " ocorrências");
            stb.AppendLine("ID: " + funcionario.Id);
            stb.AppendLine("Nome: " + funcionario.Name);
            stb.AppendLine("Matrícula: " + funcionario.Matriculation);
            stb.AppendLine("Verba para cálculo: " + selectedVerba.Nome);
            stb.AppendLine(periodo);

            stb.AppendLine("---------------------------------------------------------------");

            List <RelatorioFunc>    relatorioFuncs = new List <RelatorioFunc>();
            List <ContratoAliquota> aliquotasList  = new List <ContratoAliquota>();

            RelatorioFunc relFunc;

            foreach (var histFunc in histFuncList)
            {
                if (histFunc.Contrato == null)
                {
                    relFunc = new RelatorioFunc(histFunc.Cliente, histFunc.Data.Year);
                }
                else
                {
                    relFunc = new RelatorioFunc(histFunc.Contrato, histFunc.Data.Year);
                }

                if (!relatorioFuncs.Contains(relFunc))
                {
                    aliquotasList = RelatoriosUtil.FilterAliquotas(histFunc, filteredContratoAliquotas);
                    foreach (var aliqObj in aliquotasList)
                    {
                        relFunc.computarValores(histFunc.SalarioBase, aliqObj.Verba, aliqObj.Aliquota);
                    }

                    relatorioFuncs.Add(relFunc);
                }
                else
                {
                    int index = relatorioFuncs.IndexOf(relFunc);
                    foreach (var aliqObj in aliquotasList)
                    {
                        relatorioFuncs[index].computarValores(histFunc.SalarioBase, aliqObj.Verba, aliqObj.Aliquota);
                    }
                }

                //stb.AppendLine(histFunc.Data.Month + "/" + histFunc.Data.Year);
                //stb.AppendLine(histFunc.SalarioBase.ToString());
            }

            foreach (var relF in relatorioFuncs)
            {
                stb.AppendLine("********************************************************");

                if (relF.Contrato == null)
                {
                    stb.AppendLine("Cliente: " + relF.Cliente.Name);
                }
                else
                {
                    stb.AppendLine("Contrato: " + relF.Contrato.Name);
                }

                stb.AppendLine("Ano: " + relF.Ano);
                //stb.AppendLine("Férias: " + relF.AcumuladoFerias);
                //stb.AppendLine("Décimo Salário: " + relF.AcumuladoDecimo);
                //stb.AppendLine("Multa: " + relF.AcumuladoMulta);
                //stb.AppendLine("Lucro: " + relF.AcumuladoLucro);
                //stb.AppendLine("Encargos Sociais: " + relF.AcumuladoEncSociais);
                if (verbaId == -1) //calcular todas
                {
                    string moneyAF = String.Format("{0:C}", relF.AcumuladoFerias);
                    stb.AppendLine("Férias: " + moneyAF);
                    string moneyAD = String.Format("{0:C}", relF.AcumuladoDecimo);
                    stb.AppendLine("Décimo Salário: " + moneyAD);
                    string moneyAM = String.Format("{0:C}", relF.AcumuladoMulta);
                    stb.AppendLine("Multa: " + moneyAM);
                    string moneyAL = String.Format("{0:C}", relF.AcumuladoLucro);
                    stb.AppendLine("Lucro: " + moneyAL);
                    string moneyAES = String.Format("{0:C}", relF.AcumuladoEncSociais);
                    stb.AppendLine("Encargos Sociais: " + moneyAES);
                }
                else
                {
                    if (selectedVerba.Codigo == 1) //Férias
                    {
                        string moneyAF = String.Format("{0:C}", relF.AcumuladoFerias);
                        stb.AppendLine("Férias: " + moneyAF);
                    }
                    else if (selectedVerba.Codigo == 2)
                    {
                        string moneyAD = String.Format("{0:C}", relF.AcumuladoDecimo);
                        stb.AppendLine("Décimo Salário: " + moneyAD);
                    }
                    else if (selectedVerba.Codigo == 3)
                    {
                        string moneyAM = String.Format("{0:C}", relF.AcumuladoMulta);
                        stb.AppendLine("Multa: " + moneyAM);
                    }
                    else if (selectedVerba.Codigo == 4)
                    {
                        string moneyAL = String.Format("{0:C}", relF.AcumuladoLucro);
                        stb.AppendLine("Lucro: " + moneyAL);
                    }
                    else if (selectedVerba.Codigo == 5)
                    {
                        string moneyAES = String.Format("{0:C}", relF.AcumuladoEncSociais);
                        stb.AppendLine("Encargos Sociais: " + moneyAES);
                    }
                }
                stb.AppendLine("********************************************************");
                exportFuncionario.RelFuncionarios.Add(relF);
            }

            txtResult.Text = stb.ToString();
        }