/*
         * Parte relacionada a adição dos códigos de Depto ao contrato
         */
        //private void btnAddDept_Click(object sender, EventArgs e)
        //{
        //    string dptCode = this.txtDptCode.Text;
        //    Department dept = _facade.GetDepartmentByCode(dptCode);
        //    if (dept == null)
        //    {
        //        if (DialogResult.Yes == MessageBox.Show("Departamento não encontrado na base de dados, deseja adicioná-lo?", "Adicionar Departamento Novo",
        //            MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1))
        //        {
        //            FrmAddDepartment frmAddDepartment = new FrmAddDepartment(dptCode);
        //            frmAddDepartment.FormClosed += new FormClosedEventHandler(_FormAddDeptClosed);
        //            frmAddDepartment.ShowDialog();
        //        }
        //    }
        //    else
        //    {
        //        _TryAddingDept(dept);
        //    }
        //}

        //private void _TryAddingDept(Department dept)
        //{
        //    if (this.allDeptCodes.Add(dept))
        //    {
        //        ListViewItem item;
        //        item = new ListViewItem();
        //        item.Text = dept.Code;
        //        item.SubItems.Add(dept.Name);
        //        this.listDepts.Items.Add(item);
        //        this.txtDptCode.Text = "";
        //    }
        //}

        //private void _FormAddDeptClosed (object sender, FormClosedEventArgs e)
        //{
        //    FrmAddDepartment frmAddDepartment = (FrmAddDepartment)sender;
        //    _TryAddingDept(frmAddDepartment.Department);
        //}

        /*
         * Parte relacionada a adição das alíquotas ao contrato
         */
        private void btnAddAliquot_Click(object sender, EventArgs e)
        {
            try
            {
                if (Regex.IsMatch(this.txtAliquotValue.Text, aliqPattern))
                {
                    double             aliqValue = Convert.ToDouble(this.txtAliquotValue.Text);
                    ContingencyFund    cf        = this.cbContigencyFunds.SelectedItem as ContingencyFund;
                    ContingencyAliquot contAliq  = new ContingencyAliquot(aliqValue, cf);

                    _TryAddingContingencyAliquot(contAliq);
                }
                else
                {
                    MessageBox.Show("A taxa de alíquota inserida deve conter dois dígitos decimais e duas casas decimais separadas por vírgula, exemplo: 10,30%",
                                    "Erro de Conversão de Taxa", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (FormatException)
            {
                MessageBox.Show("A taxa de alíquota inserida deve ser válida, exemplo: 10,30% ou 8,00%", "Erro de Conversão de Taxa", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (OverflowException)
            {
                MessageBox.Show("A taxa inserida deve ser entre 00,00 e 99,99%", "Erro de Conversão de Taxa", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 private void _TryAddingContingencyAliquot(ContingencyAliquot contAliq)
 {
     if (this.contingencyFundsAliquots.Add(contAliq))
     {
         ListViewItem item;
         item      = new ListViewItem();
         item.Text = contAliq.ContingencyFund.Name;
         item.SubItems.Add(contAliq.Value.ToString());
         this.listContFundsAliquots.Items.Add(item);
         this.txtAliquotValue.Text = "";
     }
 }
Пример #3
0
        private void btnExport_Click(object sender, EventArgs e)
        {
            List <EmployeeHistory> employeeHistoriesChecked = new List <EmployeeHistory>();

            foreach (DataGridViewRow row in this.dgvEmployees.Rows)
            {
                //se tiver marcado com CHECKED o funcionário
                if (Convert.ToBoolean(row.Cells[0].Value) == true)
                {
                    foreach (EmployeeHistory eh in employeeHistoriesVacation)
                    {
                        if (eh.Employee.Matriculation == row.Cells["matriculaColumn"].Value.ToString())
                        {
                            List <DateTime> dateTimes = (List <DateTime>)row.Cells["perAqColumn"].Tag;
                            DateTime        dt1, dt2;
                            if (dateTimes.Count > 0 && dateTimes.Count < 2)
                            {
                                dt1 = dt2 = dateTimes[0];
                            }
                            else
                            {
                                dt1 = dateTimes[0];
                                dt2 = dateTimes[1];
                            }
                            if ((DateTime.Compare(eh.StartVacationTaken, dt1) == 0 || DateTime.Compare(eh.StartVacationTaken, dt2) == 0) &&
                                (DateTime.Compare(eh.EndVacationTaken, dt1) == 0 || DateTime.Compare(eh.EndVacationTaken, dt2) == 0))
                            {
                                employeeHistoriesChecked.Add(eh);
                            }
                        }
                    }
                }
            }

            HashSet <ContingencyPast> empHistoryContPast =
                _facade.GetContingencyPastsByEmployeeHistoryList(employeeHistoriesChecked, new ContingencyFund("Férias"));
            //int year = (int)this.cbLowYear.SelectedItem;
            //List<ContingencyPast> cpListByYear = this.yearListCPsPairs[year];
            ContingencyAliquot caInc = new ContingencyAliquot();

            foreach (ContingencyAliquot ca in taxFunds)
            {
                if (ca.ContingencyFund.Name.ToUpper().Equals("INCIDÊNCIA"))
                {
                    caInc = ca;
                }
            }
            IWorkbook workbook = DefaultExporterWorksheet.ExportCtgencyVacationEmployeeList(employeeHistoriesChecked, empHistoryContPast, caInc);

            _SaveExcelFile(workbook);
        }
        public List <ContingencyAliquot> GetByContract(Contract ct)
        {
            List <ContingencyAliquot> contingencyAliquots = new List <ContingencyAliquot>();
            NpgsqlDataReader          reader = null;

            try
            {
                string selectCMD = "SELECT ca.id as ca_id, ca.value as ca_value, " +
                                   "cf.id as cf_id, cf.name as cf_name, ctt.id as ctt_id, ctt.name as ctt_name " +
                                   "FROM (contingency_aliquot ca INNER JOIN contingency_funds cf ON (ca.contingency_fund_id = cf.id)) " +
                                   "INNER JOIN contracts ctt ON (ca.contract_id = ctt.id) " +
                                   "WHERE ca.contract_id = :ctID ORDER BY ca.id";

                NpgsqlCommand cmd = new NpgsqlCommand(selectCMD);

                cmd.Parameters.Add(new NpgsqlParameter("ctID", NpgsqlTypes.NpgsqlDbType.Bigint));
                cmd.Parameters[0].Value = ct.Id;

                Contract           contract;
                ContingencyFund    contingencyFund;
                ContingencyAliquot contingencyAliquot;
                dal.OpenConnection();
                reader = dal.ExecuteDataReader(cmd);

                while (reader.Read())
                {
                    contingencyAliquot       = new ContingencyAliquot();
                    contingencyAliquot.Id    = Convert.ToInt64(reader["ca_id"]);
                    contingencyAliquot.Value = Convert.ToDouble(reader["ca_value"]);
                    contract = new Contract(Convert.ToInt64(reader["ctt_id"]), reader["ctt_name"].ToString());
                    contingencyAliquot.Contract        = contract;
                    contingencyFund                    = new ContingencyFund(Convert.ToInt64(reader["cf_id"]), reader["cf_name"].ToString());
                    contingencyAliquot.ContingencyFund = contingencyFund;

                    contingencyAliquots.Add(contingencyAliquot);
                }
                reader.Close();
            }

            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
                this.dal.CloseConection();
            }
            return(contingencyAliquots);
        }
        public List <ContingencyPast> ProcessContingencyContract(Contract contract, MonetaryFund monetaryFund)
        {
            List <EmployeeHistory> employeeHistories = this._employeeHistoryDAO.GetByContract(contract, false);
            List <ContingencyPast> contingencyPasts  = new List <ContingencyPast>();
            ContingencyPast        cp;
            ContingencyAliquot     caToAdd;

            foreach (EmployeeHistory eh in employeeHistories)
            {
                cp = new ContingencyPast();
                cp.EmployeeHistory  = eh;
                cp.MonetaryFundName = monetaryFund.Name;
                foreach (ContingencyAliquot ca in contract.ContingencyAliquot)
                {
                    caToAdd    = new ContingencyAliquot();
                    caToAdd.Id = ca.Id;
                    caToAdd.ContingencyFund = new ContingencyFund(ca.ContingencyFund.Id, ca.ContingencyFund.Name);
                    caToAdd.Value           = ca.Value;
                    //essa parte tá horrorosa (calculando para cada Mês)
                    if (monetaryFund.Name.ToUpper().Equals("SALÁRIO BASE"))
                    {
                        caToAdd.CalculatedValue = Math.Round((ca.Value / 100) * eh.BaseSalary, 2);
                    }
                    else if (monetaryFund.Name.ToUpper().Equals("PROVENTOS TOTAIS"))
                    {
                        caToAdd.CalculatedValue = Math.Round((ca.Value / 100) * eh.TotalEarnings, 2);
                    }
                    else
                    {
                        caToAdd.CalculatedValue = Math.Round((ca.Value / 100) * eh.NetSalary, 2);
                    }

                    //if (ca.ContingencyFund.Name.ToUpper() == "FÉRIAS")
                    //    caToAdd.CalculatedValue = Math.Round(System.Convert.ToDouble(ca.CalculatedValue/3), 2);

                    cp.ContingencyAliquots.Add(caToAdd);
                }
                contingencyPasts.Add(cp);
            }
            return(contingencyPasts);
        }
        //public Contract GetByName<K>(K name)
        //{

        //    Contract contract = new Contract();
        //    NpgsqlDataReader reader = null;
        //    try
        //    {
        //        string SELECTCMD = "SELECT * FROM contracts WHERE matricula = '" + name + "'";
        //        dal.OpenConnection();
        //        reader = dal.ExecuteDataReader(SELECTCMD);

        //        if (reader.Read())
        //        {
        //            contract.Id = Convert.ToInt64(reader["id"]);
        //            contract.Name = reader["name"].ToString();
        //            contract.Matriculation = reader["matriculation"].ToString();
        //            contract.Birthday = Convert.ToDateTime(reader["birthday"]);
        //            contract.CurrentStartDate = Convert.ToDateTime(reader["start_date"]);
        //            contract.CurrentEndDate = Convert.ToDateTime(reader["end_date"]);
        //            contract.PIS = reader["pis"].ToString();
        //            contract.CPF = reader["cpf"].ToString();

        //        }
        //        reader.Close();
        //    }

        //    finally
        //    {
        //        if (reader != null)
        //        {
        //            reader.Close();
        //        }
        //        this.dal.CloseConection();
        //    }
        //    return contract;
        //}

        public List <Contract> GetTop()
        {
            List <Contract> contracts = new List <Contract>();
            Contract        contract  = null;
            //List<Department> departments = new List<Department>();
            HashSet <MonetaryFund>    monetaryFunds       = new HashSet <MonetaryFund>(new MonetaryFundComparer());
            List <ContingencyAliquot> contingencyAliquots = new List <ContingencyAliquot>();

            NpgsqlDataReader reader = null;

            try
            {
                NpgsqlCommand cmd;

                string selectCMD = "SELECT * FROM contracts";

                cmd = new NpgsqlCommand(selectCMD);

                dal.OpenConnection();
                reader = dal.ExecuteDataReader(cmd);
                while (reader.Read())
                {
                    contract             = new Contract();
                    contract.Id          = Convert.ToInt64(reader["id"]);
                    contract.Name        = reader["name"].ToString();
                    contract.Description = reader["description"].ToString();
                    contract.Balance     = Convert.ToDouble(reader["balance"]);

                    if (reader["start_date"] is DBNull)
                    {
                        contract.StartDate = DateTime.MinValue;
                    }
                    else
                    {
                        contract.StartDate = Convert.ToDateTime(reader["start_date"]);
                    }

                    if (reader["end_date"] is DBNull)
                    {
                        contract.EndDate = DateTime.MinValue;
                    }
                    else
                    {
                        contract.EndDate = Convert.ToDateTime(reader["end_date"]);
                    }

                    contracts.Add(contract);
                }
                reader.Close();

                //Department department;
                MonetaryFund       monetaryFund;
                ExtraFund          extraFund;
                ContingencyAliquot contingencyAliquot;
                ContingencyFund    contingencyFund;

                string selectMonetaryFundsCMD = "SELECT c.id as c_id, c.name as c_name, c.start_date as c_start_date, c.end_date as c_end_date, " +
                                                "cmf.id as cmf_id, cmf.contract_id as cmf_contract_id, cmf.monetary_fund_id as cmf_monetary_fund_id, " +
                                                "mf.id as mf_id, mf.name as mf_name, mf.primal as mf_primal, " +
                                                "ef.id as ef_id, ef.name as ef_name " +
                                                "FROM (contracts c INNER JOIN contract_monetary_funds cmf ON " +
                                                "(c.id = cmf.contract_id)) " +
                                                "INNER JOIN monetary_funds mf ON (cmf.monetary_fund_id = mf.id) " +
                                                "LEFT JOIN extra_funds ef ON (cmf.extra_fund_id = ef.id) " +
                                                "WHERE c.id = :passedId ORDER BY c.id";

                string selectContAliquotCMD = "SELECT c.id as c_id, c.name as c_name, c.start_date as c_start_date, c.end_date as c_end_date, " +
                                              "ca.id as ca_id, ca.start_date as ca_start_date, ca.end_date as ca_end_date, ca.value as ca_value, " +
                                              "cf.id as cf_id, cf.name as cf_name FROM (contracts c INNER JOIN contingency_aliquot ca ON " +
                                              "(c.id = ca.contract_id)) " +
                                              "LEFT JOIN contingency_funds cf ON (ca.contingency_fund_id = cf.id) " +
                                              "WHERE c.id = :passedId ORDER BY c.id";

                cmd.Parameters.Add(new NpgsqlParameter("passedId", NpgsqlTypes.NpgsqlDbType.Bigint));

                foreach (Contract ct in contracts)
                {
                    //Consultar as verbas monetárias do contrato
                    cmd.CommandText         = selectMonetaryFundsCMD;
                    cmd.Parameters[0].Value = ct.Id;
                    monetaryFunds           = new HashSet <MonetaryFund>(new MonetaryFundComparer());
                    contingencyAliquots     = new List <ContingencyAliquot>();

                    reader = dal.ExecuteDataReader(cmd);

                    long currentMFId = 0;
                    while (reader.Read())
                    {
                        currentMFId = Convert.ToInt64(reader["mf_id"]);

                        if (reader["ef_id"] is DBNull && reader["ef_name"] is DBNull)
                        {
                            monetaryFund = new MonetaryFund(Convert.ToInt64(reader["mf_id"]), reader["mf_name"].ToString());
                            monetaryFunds.Add(monetaryFund);
                        }
                        else
                        {
                            extraFund    = new ExtraFund(Convert.ToInt64(reader["ef_id"]), reader["ef_name"].ToString());
                            monetaryFund = new MonetaryFund(Convert.ToInt64(reader["mf_id"]), reader["mf_name"].ToString());
                            if (monetaryFunds.Add(monetaryFund))
                            {
                                monetaryFund.ExtraFunds.Add(extraFund);
                            }
                            else
                            {
                                foreach (MonetaryFund mf in monetaryFunds)
                                {
                                    if (mf.Id == currentMFId)
                                    {
                                        mf.ExtraFunds.Add(extraFund);
                                    }
                                }
                            }
                        }
                    }
                    reader.Close();
                    ct.MonetaryFunds = new List <MonetaryFund>(monetaryFunds);

                    //Consultar as alíquotas do contrato
                    cmd.CommandText = selectContAliquotCMD;

                    reader = dal.ExecuteDataReader(cmd);
                    while (reader.Read())
                    {
                        contingencyFund    = new ContingencyFund(Convert.ToInt64(reader["cf_id"]), reader["cf_name"].ToString());
                        contingencyAliquot = new ContingencyAliquot(Convert.ToInt64(reader["ca_id"]), Convert.ToDouble(reader["ca_value"]),
                                                                    Convert.ToDateTime(reader["ca_start_date"]), Convert.ToDateTime(reader["ca_end_date"]), contingencyFund);

                        contingencyAliquots.Add(contingencyAliquot);
                    }
                    reader.Close();
                    ct.ContingencyAliquot = contingencyAliquots;
                }
            }

            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
                this.dal.CloseConection();
            }
            return(contracts);
        }
        public void Update <K>(K id, ContingencyAliquot contingencyAliquot)
        {
            int rowsAffected = -1;

            try
            {
                NpgsqlCommand cmd = new NpgsqlCommand("UPDATE contingency_aliquot SET \"start_date\" = :startDate, \"end_date\" = :endDate, \"contract_id\" = :contractId, " +
                                                      "\"value\" = :value, \"contingency_fund_id\" = :contingencyFundId "
                                                      + "WHERE \"id\" = '" + id + "' ;");

                cmd.Parameters.Add(new NpgsqlParameter("startDate", NpgsqlTypes.NpgsqlDbType.Date));
                cmd.Parameters.Add(new NpgsqlParameter("endDate", NpgsqlTypes.NpgsqlDbType.Date));
                cmd.Parameters.Add(new NpgsqlParameter("value", NpgsqlTypes.NpgsqlDbType.Double));
                cmd.Parameters.Add(new NpgsqlParameter("contractId", NpgsqlTypes.NpgsqlDbType.Bigint));
                cmd.Parameters.Add(new NpgsqlParameter("contingencyFundId", NpgsqlTypes.NpgsqlDbType.Bigint));

                if (contingencyAliquot.StartDate == null)
                {
                    cmd.Parameters[0].Value = DBNull.Value;
                }
                else
                {
                    cmd.Parameters[0].Value = contingencyAliquot.StartDate;
                }

                if (contingencyAliquot.EndDate == null)
                {
                    cmd.Parameters[1].Value = DBNull.Value;
                }
                else
                {
                    cmd.Parameters[1].Value = contingencyAliquot.EndDate;
                }

                cmd.Parameters[2].Value = contingencyAliquot.Value;

                if (contingencyAliquot.Contract == null)
                {
                    cmd.Parameters[3].Value = DBNull.Value;
                }
                else
                {
                    cmd.Parameters[3].Value = contingencyAliquot.Contract.Id;
                }

                if (contingencyAliquot.ContingencyFund == null)
                {
                    cmd.Parameters[4].Value = DBNull.Value;
                }
                else
                {
                    cmd.Parameters[4].Value = contingencyAliquot.ContingencyFund.Id;
                }

                dal.OpenConnection();
                rowsAffected = dal.ExecuteNonQuery(cmd);
            }
            finally
            {
                this.dal.CloseConection();
            }
        }
        public long Insert(ContingencyAliquot contingencyAliquot)
        {
            //int rowsAffected = -1;
            object obj        = null;
            long   returnedId = -1;

            try
            {
                string cmdInsert = "INSERT INTO contingency_aliquot (start_date, end_date, value, contract_id, contingency_fund_id) " +
                                   "VALUES (:startDate, :endDate, :value, :contractId, :contingencyFundId) RETURNING id";

                NpgsqlCommand cmd = new NpgsqlCommand(cmdInsert);

                cmd.Parameters.Add(new NpgsqlParameter("startDate", NpgsqlTypes.NpgsqlDbType.Date));
                cmd.Parameters.Add(new NpgsqlParameter("endDate", NpgsqlTypes.NpgsqlDbType.Date));
                cmd.Parameters.Add(new NpgsqlParameter("value", NpgsqlTypes.NpgsqlDbType.Double));
                cmd.Parameters.Add(new NpgsqlParameter("contractId", NpgsqlTypes.NpgsqlDbType.Bigint));
                cmd.Parameters.Add(new NpgsqlParameter("contingencyFundId", NpgsqlTypes.NpgsqlDbType.Bigint));

                if (contingencyAliquot.StartDate == null)
                {
                    cmd.Parameters[0].Value = DBNull.Value;
                }
                else
                {
                    cmd.Parameters[0].Value = contingencyAliquot.StartDate;
                }

                if (contingencyAliquot.EndDate == null)
                {
                    cmd.Parameters[1].Value = DBNull.Value;
                }
                else
                {
                    cmd.Parameters[1].Value = contingencyAliquot.EndDate;
                }

                cmd.Parameters[2].Value = contingencyAliquot.Value;

                if (contingencyAliquot.Contract == null)
                {
                    cmd.Parameters[3].Value = DBNull.Value;
                }
                else
                {
                    cmd.Parameters[3].Value = contingencyAliquot.Contract.Id;
                }

                if (contingencyAliquot.ContingencyFund == null)
                {
                    cmd.Parameters[4].Value = DBNull.Value;
                }
                else
                {
                    cmd.Parameters[4].Value = contingencyAliquot.ContingencyFund.Id;
                }

                dal.OpenConnection();
                obj = dal.ExecuteScalar(cmd);
                if (obj != null)
                {
                    returnedId = (long)obj;
                }
            }
            finally
            {
                this.dal.CloseConection();
            }
            return(returnedId);
        }
 public long InsertContingencyAliquot(ContingencyAliquot contingencyAliquot)
 {
     return(this._contingencyAliquotDAO.Insert(contingencyAliquot));
 }
 public void UpdateContingencyAliquot(long id, ContingencyAliquot contingencyAliquot)
 {
     this._contingencyAliquotDAO.Update <long>(id, contingencyAliquot);
 }