private void btnExport_Click(object sender, EventArgs e)
        {
            List <string> stringsToEmail = RelatoriosUtil.ExportSolicitationFuncText(exportFuncionario);
            DlgTextoEmail dlgTextoEmail  = new DlgTextoEmail(stringsToEmail);

            dlgTextoEmail.ShowDialog();
        }
        private void searchClient(object item, DateTime start, DateTime end)
        {
            Cliente cliente = (Cliente)item;

            txtResult.Clear();
            List <HistoricoFuncionario> histFuncs = _facade.GetHistoricoByClienteAndDatas(cliente.Id, start, end);
            StringBuilder stb = new StringBuilder();

            stb.AppendLine("Foram encontradas " + histFuncs.Count + " ocorrências");
            stb.AppendLine("ID: " + cliente.Id);
            stb.AppendLine("Nome: " + cliente.Name);
            stb.AppendLine("Período: " + start.Month + "/" + start.Year + " até " + end.Month + "/" + end.Year);

            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, contratosAliquotas);
                    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("Funcionário: " + relC.Funcionario.Name + "(" + relC.Funcionario.Matriculation + ")");
                stb.AppendLine("Contrato: " + relC.Contrato.Name);
                stb.AppendLine("Ano: " + relC.Ano);
                //stb.AppendLine("Férias: " + relC.AcumuladoFerias);
                string moneyAF = String.Format("{0:C}", relC.AcumuladoFerias);
                stb.AppendLine("Férias: " + moneyAF);
                //stb.AppendLine("Décimo Salário: " + relC.AcumuladoDecimo);
                string moneyAD = String.Format("{0:C}", relC.AcumuladoDecimo);
                stb.AppendLine("Décimo Salário: " + moneyAD);
                //stb.AppendLine("Multa: " + relC.AcumuladoMulta);
                string moneyAM = String.Format("{0:C}", relC.AcumuladoMulta);
                stb.AppendLine("Multa: " + moneyAM);
                //stb.AppendLine("Lucro: " + relC.AcumuladoLucro);
                string moneyAL = String.Format("{0:C}", relC.AcumuladoLucro);
                stb.AppendLine("Lucro: " + moneyAL);
                //stb.AppendLine("Encargos Sociais: " + relC.AcumuladoEncSociais);
                string moneyAES = String.Format("{0:C}", relC.AcumuladoEncSociais);
                stb.AppendLine("Encargos Sociais: " + moneyAES);
                stb.AppendLine("********************************************************");
            }

            txtResult.Text = stb.ToString();
        }
        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();
        }
Exemplo n.º 5
0
        private void searchContrato(object cbItem, DateTime start, DateTime end)
        {
            dynamic d             = cbItem;
            int     contratoID    = d.Value;
            string  contratoName  = d.Display;
            string  clienteIDName = d.Group;

            int    pFrom     = 1;//clienteIDName.IndexOf("key : ") + "key : ".Length;
            int    pTo       = clienteIDName.LastIndexOf("]");
            String result    = clienteIDName.Substring(pFrom, pTo - pFrom);
            int    clienteID = Convert.ToInt32(result);

            txtResult.Clear();
            List <HistoricoFuncionario> histFuncs = _facade.GetHistoricoByContratoAndDatas(clienteID, contratoID, start, end);
            StringBuilder stb       = new StringBuilder();
            StringBuilder stbTotais = new StringBuilder();

            stb.AppendLine("Foram encontradas " + histFuncs.Count + " ocorrências");
            stb.AppendLine("ID: " + contratoID);
            stb.AppendLine("Nome: " + contratoName);
            stb.AppendLine("Período: " + start.Month + "/" + start.Year + " até " + end.Month + "/" + end.Year);

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

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

            RelatorioCliente relCliente;
            RelatorioCliente relTotais = new RelatorioCliente();

            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, contratosAliquotas);
                    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);
                    }
                }
            }
            string moneyAF, moneyAD, moneyAM, moneyAL, moneyAES;

            foreach (var relC in relatorioClientes)
            {
                stb.AppendLine("********************************************************");
                stb.AppendLine("Funcionário: " + relC.Funcionario.Name + "(" + relC.Funcionario.Matriculation + ")");
                stb.AppendLine("Contrato: " + relC.Contrato.Name);
                stb.AppendLine("Ano: " + relC.Ano);
                //stb.AppendLine("Férias: " + relC.AcumuladoFerias);
                moneyAF = String.Format("{0:C}", relC.AcumuladoFerias);
                stb.AppendLine("Férias: " + moneyAF);
                //stb.AppendLine("Décimo Salário: " + relC.AcumuladoDecimo);
                moneyAD = String.Format("{0:C}", relC.AcumuladoDecimo);
                stb.AppendLine("Décimo Salário: " + moneyAD);
                //stb.AppendLine("Multa: " + relC.AcumuladoMulta);
                moneyAM = String.Format("{0:C}", relC.AcumuladoMulta);
                stb.AppendLine("Multa: " + moneyAM);
                //stb.AppendLine("Lucro: " + relC.AcumuladoLucro);
                moneyAL = String.Format("{0:C}", relC.AcumuladoLucro);
                stb.AppendLine("Lucro: " + moneyAL);
                //stb.AppendLine("Encargos Sociais: " + relC.AcumuladoEncSociais);
                moneyAES = String.Format("{0:C}", relC.AcumuladoEncSociais);
                stb.AppendLine("Encargos Sociais: " + moneyAES);
                stb.AppendLine("********************************************************");

                //Para os totais
                relTotais.AcumuladoFerias     += relC.AcumuladoFerias;
                relTotais.AcumuladoDecimo     += relC.AcumuladoDecimo;
                relTotais.AcumuladoMulta      += relC.AcumuladoMulta;
                relTotais.AcumuladoLucro      += relC.AcumuladoLucro;
                relTotais.AcumuladoEncSociais += relC.AcumuladoEncSociais;
            }

            txtResult.Text = stb.ToString();

            stbTotais.AppendLine("### Contabilização Total ###");
            moneyAF = String.Format("{0:C}", relTotais.AcumuladoFerias);
            stbTotais.AppendLine("Férias: " + moneyAF);
            moneyAD = String.Format("{0:C}", relTotais.AcumuladoDecimo);
            stbTotais.AppendLine("Décimo Salário: " + moneyAD);
            moneyAM = String.Format("{0:C}", relTotais.AcumuladoMulta);
            stbTotais.AppendLine("Multa: " + moneyAM);
            moneyAL = String.Format("{0:C}", relTotais.AcumuladoLucro);
            stbTotais.AppendLine("Lucro: " + moneyAL);
            moneyAES = String.Format("{0:C}", relTotais.AcumuladoEncSociais);
            stbTotais.AppendLine("Encargos Sociais: " + moneyAES);
            stbTotais.AppendLine("********************************************************");
            double totalGeral = relTotais.AcumuladoFerias + relTotais.AcumuladoDecimo + relTotais.AcumuladoEncSociais +
                                relTotais.AcumuladoMulta + relTotais.AcumuladoLucro;
            string moneyTotal = String.Format("{0:C}", totalGeral);

            stbTotais.AppendLine("Somatório Total das Verbas: " + moneyTotal);

            txtTotais.Text = stbTotais.ToString();
        }