/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmdSave_Click(object sender, EventArgs e) { string error = ""; try { RhpBEProcessamento Payroll = new RhpBEProcessamento { Funcionario = txtEmployeeID.Text.ToUpper(), NumPeriodoProcessado = dtProcDate.Value.Month, DataProcessamento = dtProcDate.Value, DiasProc = 21, TipoProcessamento = (TipoProc)cmbProcType.SelectedIndex, EnglobaIRS = false, Ano = dtProcDate.Value.Year, DataLimAltMensais = dtAbsOvertime.Value }; Payroll.Periodo = PriEngine.Engine.RecursosHumanos.Funcionarios.DaValorAtributo(Payroll.Funcionario, "Periodo").ToString(); if (PriEngine.Engine.RecursosHumanos.Processamento.ProcessaAuto(Payroll, ref error)) { if (chkPayslips.Checked) { ProcessPayslips(Payroll); } } MessageBox.Show("Processing carried out successfully."); } catch (Exception Ex) { MessageBox.Show($"An error has ocorred in processing. \n {Ex.Message}"); } }
public override void AntesDeGravar(RhpBEProcessamento clsProcessamento, ExtensibilityEventArgs e) { clsProcessamento.Remuneracoes.Add(new RhpBEProcRemuneracao { Remuneracao = "R20", Unidades = 1, Valor = valorRemuneracao, Origem = OrigemDados.origemVBA, Moeda = "EUR", AnoReferencia = clsProcessamento.NumPeriodoProcessado, TipoCalculo = tpCalculo.tpCalcValorFixo, ValorIntroducao = valorRemuneracao, ValorIliquido = valorRemuneracao, ValorIliquidoEfectivo = valorRemuneracao, ValorUnitario = valorRemuneracao, PeriodoReferencia = clsProcessamento.NumPeriodoProcessado, MesFiscalReferencia = clsProcessamento.MesProcessamento, MesCalculoIRS = clsProcessamento.MesProcessamento, CalculoDiferidoAtivo = clsProcessamento.CalculoDiferidoAtivo, Instrumento = clsProcessamento.Instrumento, Situacao = clsProcessamento.Situacao, TipoVencimento = (int)clsProcessamento.TipoProcessamento, IRSDomicilioFiscal = clsProcessamento.IRSDomicilioFiscal, RegimeExRes = clsProcessamento.RegimeExRes }); base.AntesDeGravar(clsProcessamento, e); }
/// <summary> /// Process payslip of employee /// </summary> /// <param name="payroll"></param> private void ProcessPayslips(RhpBEProcessamento payroll) { try { RhpBERecibo payslip = new RhpBERecibo { CodigoFuncionario = txtEmployeeID.Text, Ano = payroll.Ano, NumPeriodo = payroll.NumPeriodoProcessado, CodigoPeriodo = payroll.Periodo, ImprInclFaltas = true, ImprAglomearar = true, Relatorio = "RHPR0006", Moeda = "EUR" }; PriEngine.Engine.RecursosHumanos.Recibos.IniciaProcessamentoRecibos(); PriEngine.Engine.RecursosHumanos.Recibos.ProcessaRecibos(payslip, false); PriEngine.Engine.RecursosHumanos.Recibos.TerminaProcessamentoRecibos(); } catch { throw; } }
/// <summary> /// Process payslip of employee /// </summary> /// <param name="payroll"></param> private void ProcessPayslips(RhpBEProcessamento payroll) { RhpBERecibo payslip = null; bool openedMap = false; string employeeCurrency = ""; Platform.Collections.PrimaveraOrderedDictionary records = new Platform.Collections.PrimaveraOrderedDictionary(); string printSession = ""; try { string tempTable = PriEngine.Engine.RecursosHumanos.ProcessamentoRecibos.CriaTabAuxiliares(""); PriEngine.Engine.RecursosHumanos.ProcessamentoRecibos.ProcessarRecibo(txtEmployeeID.Text, payroll.Ano, payroll.MesProcessamento, payroll.NumProcessamento, payroll.TipoCalculoVencimento, payroll.Periodo, true, false, payroll.TotalDeRemuneracoes, payroll.TotalDeDescontos, payroll.TotalLiquido, DateTime.Today, true, false, true, true, true, true, false, ref employeeCurrency, records, "", "", false, false, ref tempTable, false, "RHPR0006", "", ref payslip); PriEngine.Engine.RecursosHumanos.ProcessamentoRecibos.CriaReciboPDF(PriEngine.Platform, payslip, "RHPR0006", tempTable, true, ref openedMap, "0", ref printSession); } catch { throw; } }
public override void DepoisDeGravar(RhpBEProcessamento clsProcessamento, ExtensibilityEventArgs e) { Debug.Print("DepoisDeGravar"); }
private void ProcessAllowance(RhpBEProcessamento Processing) { const string ShiftAllowance = "R05"; const string NightAllowance = "R20"; const string AddHolidayAllowance = "R54"; const string AddChristmasAllowance = "R55"; RhpBERemuneracao remuneration = new RhpBERemuneracao(); StdBELista average; if ((Processing.TipoProcessamento == TipoProc.tpSubsFerias || Processing.TipoProcessamento == TipoProc.tpSubsNatal) && (!string.IsNullOrEmpty(Processing.Funcionario))) { if (Processing.TipoProcessamento == TipoProc.tpSubsFerias) { remuneration = BSO.RecursosHumanos.Remuneracoes.Edita(AddHolidayAllowance); } else { remuneration = BSO.RecursosHumanos.Remuneracoes.Edita(AddChristmasAllowance); } if (remuneration != null) { //Calculate the average remuneration string sql = "SELECT ISNULL( ROUND(SUM(Valor)/(COUNT(DISTINCT NumProc)), 2), 0) Media "; sql += "FROM MovimentosFuncionarios "; sql += $"WHERE Funcionario ={DadosProcessamento.Funcionario}' AND Ano = {DadosProcessamento.Ano} AND MesFiscal < {DadosProcessamento.MesProcessamento} AND CodMov IN ('{ShiftAllowance}', '{NightAllowance}') AND TipoVenc = 1"; average = BSO.Consulta(sql); double value = average.Valor("Media"); //Creates the remuneration in the processing, if the average value is different from zero, if (value > 0) { RhpBEProcRemuneracao processingRemuneration = new RhpBEProcRemuneracao { IDLinhaOrigem = string.Empty, IdFuncRemCBL = string.Empty, IDLinhaRecalc = 0, NumProcRecalc = 0, Remuneracao = remuneration.Remuneracao, Descricao = remuneration.Descricao, TabelaIRSFixa = remuneration.TabelaIRSFixa, TipoRemuneracao = tpRem.tpRemValorTotal, TipoSubsidioAlimentacao = RhpBETipos.RHPTiposSubsidiosAlimentacao.Indefinido, TipoCalculo = tpCalculo.tpCalcValorFixo, Percentual = false, Percentagem = 0, ValorIntroducao = value, Valor = value, ValorIliquido = value, ValorIliquidoEfectivo = value, ValorUnitario = value, Unidades = 1, UnidadesLiquido = 1, MovNaoRegular = true, Origem = OrigemDados.origemSistema, Sistema = true, AlteradoVBA = true, AnoReferencia = Processing.Ano, PeriodoReferencia = Processing.MesProcessamento, MesFiscalReferencia = Processing.MesProcessamento, MesCalculoIRS = DadosProcessamento.MesProcessamento, CalculoDiferidoAtivo = DadosProcessamento.CalculoDiferidoAtivo, Instrumento = DadosProcessamento.Instrumento, Situacao = DadosProcessamento.Situacao, TipoVencimento = (int)Processing.TipoProcessamento }; try { //Add remuneration to processing Processing.Remuneracoes.Insere(processingRemuneration, remuneration.Remuneracao); } catch { throw; } } } } }