예제 #1
0
        /// <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);
        }
예제 #3
0
        /// <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;
            }
        }
예제 #4
0
        /// <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");
 }
예제 #6
0
        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;
                        }
                    }
                }
            }
        }