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}"); } }
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); } }