Esempio n. 1
0
        public void ActualizaCadastroFaltas([FromBody] RhpBECadastroFalta BECadastroFalta)
        {
            //                    ProductContext.MotorLE.RecursosHumanos.CadastroHorasExtra.Actualiza(item.HExtra);

            try
            {
                ProductContext.MotorLE.RecursosHumanos.CadastroFaltas.Actualiza(BECadastroFalta);
            }
            catch (Exception ex)
            {
                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }
        private void cmdSave_Click(object sender, EventArgs e)
        {
            try
            {
                RhpBEFalta absenceType = PriEngine.Engine.RecursosHumanos.Faltas.Edita(txtAbsence.Text);

                if (absenceType != null)
                {
                    RhpBECadastroFalta absenceRecords = new RhpBECadastroFalta
                    {
                        CalculoFalta = absenceType.CalculoFaltaDias,
                        Horas        = absenceType.Horas,
                        DescontaRem  = absenceType.DescontaRemuneracoes != 0,
                        Falta        = txtAbsence.Text.ToUpper(),
                        Data         = dtDate.Value.Date,
                        Observacoes  = txtRemarks.Text,
                        Funcionario  = txtEmployee.Text.ToUpper(),
                        ExcluiProc   = chkExcludeProc.Checked,
                        ExcluiEstat  = chkExcludeStatistics.Checked,
                        Tempo        = (float)nupDuration.Value,
                        Origem       = (byte)OrigemDados.origemVBA
                    };

                    if (PriEngine.Engine.RecursosHumanos.CadastroFaltas.Existe(absenceRecords.Funcionario, absenceRecords.Data, absenceRecords.Falta))
                    {
                        MessageBox.Show($"The absence {absenceRecords.Falta} already exists for Employee { absenceRecords.Funcionario} on day {absenceRecords.Data}.");
                    }
                    else
                    {
                        PriEngine.Engine.RecursosHumanos.CadastroFaltas.Actualiza(absenceRecords);
                        MessageBox.Show("Writing carried out successfully.");
                        this.Close();
                    }
                }
                else
                {
                    MessageBox.Show("The Absence type does not exist.");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show($"An error occurred while executing the operation: \n {ex.Message}");
            }
        }
Esempio n. 3
0
        private RhpBECadastroFalta InsereFaltaAltMens(string CodigoFuncionario, DateTime Data, double Duracao, string Observacoes, out string MensagemErro, RhpBEFalta Falta = null, bool FaltaAssociada = false, bool ExcluirProcessamento = false, bool ExcluirEstatisticas = false)
        {
            MensagemErro = "";
            try
            {
                if (Falta == null)
                {
                    MensagemErro = "A falta não existe";
                    return(null);
                }

                CodigoFuncionario = CodigoFuncionario.ToUpper().Trim();

                RhpBECadastroFalta cadastroFalta = new RhpBECadastroFalta
                {
                    EmModoEdicao = ProductContext.MotorLE.RecursosHumanos.CadastroFaltas.Existe(CodigoFuncionario, Data, Falta.Falta),
                    Funcionario  = CodigoFuncionario,
                    Falta        = Falta.Falta,
                    Data         = Data,
                    CalculoFalta = Falta.CalculoFaltaDias,
                    Horas        = Falta.Horas,
                    DescontaRem  = Falta.DescontaRemuneracoes != 0,
                    Observacoes  = Observacoes,
                    // Origem = (byte)RhpStdComuns.OrigemDadosToInteger(OrigemDados.origemAltMens)
                    Origem = (byte)OrigemDados.origemAltMens
                };

                //Verifica se estamos a inserir uma falta automaticamente associada à falta introduzida pelo utilizador (ex: Sub. Alim.)
                double quantidade = Duracao;
                if (FaltaAssociada)
                {
                    if (cadastroFalta.Falta == ProductContext.MotorLE.RecursosHumanos.Params.CodFaltaAlim)
                    {
                        // quantidade = ProductContext.MotorLE.Base..Arredonda(quantidade + 0.1d, 0);
                    }
                    //Falta de subs alimentação sempre em valores inteiros
                    //A falta original foi inserida em dias (só neste caso a falta associada é inserida automaticamente)
                    //mas a falta associada está configurada em horas. É necessário converter os X dias para Y horas
                    if (cadastroFalta.Horas)
                    {
                        cadastroFalta.Tempo = (float)(quantidade * ProductContext.MotorLE.RecursosHumanos.Funcionarios.NumeroHorasNumDia(CodigoFuncionario));
                    }
                    else
                    {
                        cadastroFalta.Tempo = (float)quantidade;
                    }
                }
                else
                {
                    cadastroFalta.Tempo = (float)quantidade;
                }

                cadastroFalta.InseridoBloco = true;
                // cadastroFalta.Origem = (byte)RhpStdComuns.OrigemDadosToInteger(OrigemDados.origemAltMens);
                cadastroFalta.Origem      = (byte)OrigemDados.origemAltMens;
                cadastroFalta.ExcluiProc  = ExcluirProcessamento;
                cadastroFalta.ExcluiEstat = ExcluirEstatisticas;

                //Não é usado o actualiza do motor porque insere automaticamente 1 falta de subsídio de alimentação e/ou turno
                //o que não interessa neste caso. Aqui é dada ao utilizador a decisão de as introduzir ou não e em que quantidade.
                if (ProductContext.MotorLE.RecursosHumanos.CadastroFaltas.Existe(cadastroFalta.Funcionario, cadastroFalta.Data, cadastroFalta.Falta) && !cadastroFalta.EmModoEdicao)
                {
                    // throw new Primavera.Platform.Exceptions.ExpectedException(Primavera.Platform.Helpers.StdErros.StdErroPrevisto, "_InsereFaltaAltMens", ProductContext.MotorLE.DSO.Plat.Strings.Formata(RhpRLL.Resources.RES_str5952, cadastroFalta.Falta, cadastroFalta.Funcionario, cadastroFalta.Data));
                }
                if (ProductContext.MotorLE.RecursosHumanos.CadastroFaltas.ValidaLimitesAplicabilidade(cadastroFalta.Funcionario, cadastroFalta.Falta, cadastroFalta.Data, cadastroFalta.Tempo, ref MensagemErro))
                {
                    ProductContext.MotorLE.RecursosHumanos.CadastroFaltas.Actualiza(cadastroFalta);
                }
                else
                {
                    return(null);
                }

                return(cadastroFalta);
            }
            catch (Exception Ex)
            {
                MensagemErro = Ex.Message;
                return(null);
            }
        }