Exemplo n.º 1
0
        public ro_Rdep_Info setInfoRdep(int idEmpresa, decimal idEmpleado, int anioFiscal, ref string msg)
        {
            try
            {
                ro_Rdep_Info oRo_Rdep_Info = new Info.Roles.ro_Rdep_Info();

                ro_Empleado_Data oRo_Empleado_Bus  = new ro_Empleado_Data();
                ro_Empleado_Info oRo_Empleado_Info = new ro_Empleado_Info();

                oRo_Empleado_Info = oRo_Empleado_Bus.GetInfoPorEmpleadoRDEP(idEmpresa, idEmpleado, anioFiscal, ref msg);


                oRo_Rdep_Info.IdEmpleado   = oRo_Empleado_Info.IdEmpleado;
                oRo_Rdep_Info.IdEmpresa    = oRo_Empleado_Info.IdEmpresa;
                oRo_Rdep_Info.AnioFiscal   = anioFiscal;
                oRo_Rdep_Info.FechaIngresa = param.Fecha_Transac;

                oRo_Rdep_Info.CedulaRuc = oRo_Empleado_Info.InfoPersona.pe_cedulaRuc;

                //Sueldos y salarios
                oRo_Rdep_Info.suelSal = oRo_Empleado_Info.totSueldo.ToString("F2");

                //Sobresueldos, comisiones, bonos y otros ingresos gravados
                oRo_Rdep_Info.sobSuelComRemu = (oRo_Empleado_Info.totComision + oRo_Empleado_Info.totHoraExtra).ToString("F2");

                //Participación de utilidades
                oRo_Rdep_Info.partUtil = oRo_Empleado_Info.totUtilidad.ToString("F2");

                //Ingresos gravados generados con otros empleadores
                oRo_Rdep_Info.intGrabGen = "0.00"; ///AQUI INGRESAR MANUALMENTE

                //Impuesto a la renta asumido por este empleador
                oRo_Rdep_Info.impRentEmpl = "0.00"; //AQUI REVISAR EL CALCULO

                //Décimo tercer sueldo
                oRo_Rdep_Info.decimTer = oRo_Empleado_Info.totDecimoTercer.ToString("F2");

                //Décimo cuarto sueldo
                oRo_Rdep_Info.decimCuar = oRo_Empleado_Info.totDecimoCuarto.ToString("F2");

                //Fondo de reserva
                oRo_Rdep_Info.fondoReserva = oRo_Empleado_Info.totFondoReserva.ToString("F2");

                //Compensación Económica Salario Digno
                oRo_Rdep_Info.salarioDigno = oRo_Empleado_Info.totSueldoDigno.ToString("F2");

                //Otros ingresos en relación de dependencia que no constituyen renta gravada
                oRo_Rdep_Info.otrosIngRenGrav = "0.00";  ///AQUI INGRESAR MANUALMENTE

                //Ingresos gravados con este empleador (Informativo)
                oRo_Rdep_Info.ingGravConEsteEmpl = "0.00";  ///AQUI INGRESAR MANUALMENTE

                //Sistema de salario neto
                oRo_Rdep_Info.sisSalNet = "0.00";     //AQUI REVISAR EL CALCULO

                //Aporte personal al IESS con este empleador (únicamente pagado por el trabajador)
                oRo_Rdep_Info.apoPerIess = oRo_Empleado_Info.totIESS.ToString("F2");

                //Aporte personal al IESS con otros empleadores (únicamente pagado por el trabajador)
                oRo_Rdep_Info.aporPerIessConOtrosEmpls = "0.00";   ///AQUI INGRESAR MANUALMENTE


                //*****************DEDUCCION POR GASTOS PERSONALES***********************

                //Deducción de gastos personales por Vivienda
                oRo_Rdep_Info.deducVivienda = oRo_Empleado_Info.totGastoVivienda.ToString("F2");

                //Deducción de gastos personales por Salud
                oRo_Rdep_Info.deducSalud = oRo_Empleado_Info.totGastoSalud.ToString("F2");

                //Deducción de gastos personales por Educación
                oRo_Rdep_Info.deducEduca = oRo_Empleado_Info.totGastoEducacion.ToString("F2");

                //Deducción de gastos personales por Alimentación
                oRo_Rdep_Info.deducAliement = oRo_Empleado_Info.totGastoAlimentacion.ToString("F2");

                //Deducción de gastos personales por Vestimenta
                oRo_Rdep_Info.deducVestim = oRo_Empleado_Info.totGastoVestimenta.ToString("F2");

                //*************************************************************************

                //Exoneración por Discapacidad MAYOR A 30% DE DISCAPACIDAD
                if (oRo_Empleado_Info.em_empEspecial != null && oRo_Empleado_Info.em_empEspecial == "S" && oRo_Empleado_Info.por_discapacidad >= 30)
                {
                    double fraccionBasica = Convert.ToDouble(oRo_Tabla_Impu_Renta_Bus.GetInfoFraccionBasica(anioFiscal, ref mensaje).ExcesoHasta);

                    if (oRo_Empleado_Info.por_discapacidad >= 30 && oRo_Empleado_Info.por_discapacidad <= 49)
                    {
                        oRo_Rdep_Info.exoDiscap = (fraccionBasica * 2 * 0.60).ToString("F2");  //60 %
                    }
                    else
                    {
                        if (oRo_Empleado_Info.por_discapacidad >= 50 && oRo_Empleado_Info.por_discapacidad <= 74)
                        {
                            oRo_Rdep_Info.exoDiscap = (fraccionBasica * 2 * 0.70).ToString("F2");  //70 %
                        }
                        else
                        {
                            if (oRo_Empleado_Info.por_discapacidad >= 75 && oRo_Empleado_Info.por_discapacidad <= 84)
                            {
                                oRo_Rdep_Info.exoDiscap = (fraccionBasica * 2 * 0.8).ToString("F2");  //80 %
                            }
                            else
                            {
                                if (oRo_Empleado_Info.por_discapacidad >= 85 && oRo_Empleado_Info.por_discapacidad <= 100)
                                {
                                    oRo_Rdep_Info.exoDiscap = (fraccionBasica * 2).ToString("F2");   //100 %
                                }
                            }
                        }
                    }



                    oRo_Rdep_Info.exoDiscap = (fraccionBasica * 2).ToString("F2");
                }
                else
                {
                    oRo_Rdep_Info.exoDiscap = "0.00";
                }


                //Exoneración por Tercera Edad
                if (oRo_Empleado_Info.pe_fechaNacimiento != null && CalcularAniosDeDiferencia(param.Fecha_Transac, Convert.ToDateTime(oRo_Empleado_Info.pe_fechaNacimiento)) >= 65)
                {
                    double fraccionBasica = Convert.ToDouble(oRo_Tabla_Impu_Renta_Bus.GetInfoFraccionBasica(anioFiscal, ref mensaje).ExcesoHasta);
                    oRo_Rdep_Info.exoTerEd = (fraccionBasica * 2).ToString("F2");
                }
                else
                {
                    oRo_Rdep_Info.exoTerEd = "0.00";
                }

                //Base imponible gravada
                oRo_Rdep_Info.basImp = "0.00";

                //Impuesto a la renta causado
                oRo_Rdep_Info.impRentCaus = "0.00";

                //Valor del impuesto retenido y asumido por otros empleadores durante el período declarado
                oRo_Rdep_Info.valRetAsuOtrosEmpls = "0.00";       ///AQUI INGRESAR MANUALMENTE

                //Valor del impuesto asumido por este empleador
                oRo_Rdep_Info.valImpAsuEsteEmpl = "0.00";

                //Valor del impuesto retenido al trabajador por este empleador
                oRo_Rdep_Info.valRet = "0.00";

                //    oRdep.retRelDep.Add(detalleRDEP);
                //}

                oRo_Rdep_Info = pu_CalcularRDEP(oRo_Rdep_Info);

                return(oRo_Rdep_Info);
            }
            catch (Exception ex)
            {
                Core.Erp.Info.Log_Exception.LoggingManager.Logger.Log(Core.Erp.Info.Log_Exception.LoggingCategory.Error, ex.Message);
                throw new Core.Erp.Info.Log_Exception.DalException(string.Format("", "setInfoRdep", ex.Message), ex)
                      {
                          EntityType = typeof(ro_Rdep_Bus)
                      };
            }
        }
Exemplo n.º 2
0
        public List <ro_Empleado_Novedad_Det_Info> ProcesarDataTableAInfo_Prestamo_Quirografario(DataTable ds, int idempresa, DateTime fecha, ref string msg)
        {
            List <ro_Empleado_Novedad_Det_Info> lista = new List <ro_Empleado_Novedad_Det_Info>();

            try
            {
                Sec_Novedad = 0;

                ro_Empleado_Data dataEmp = new ro_Empleado_Data();

                //VERIFICA QUE EL EMPLEADO ESTE ACTIVO Y NO LIQUIDADO
                List <ro_Empleado_Info> lstTodosEmp = dataEmp.Get_List_Empleado_(idempresa).Where(v => v.em_estado == "A" && v.em_status != "EST_LIQ").ToList();

                DateTime fecha_Excel = new DateTime();
                fecha_Excel = fecha;

                //VALIDAR QUE TENGA MAS DE 6 COLUMNAS
                if (ds.Columns.Count >= 4)
                {
                    //RECORRE EL DATATABLE REGISTRO X REGISTRO
                    foreach (DataRow row in ds.Rows)
                    {
                        Sec_Novedad = Sec_Novedad + 1;
                        ro_Empleado_Novedad_Det_Info info = new ro_Empleado_Novedad_Det_Info();

                        //RECORRE C/U DE LAS COLUMNAS
                        for (int col = 0; col < ds.Columns.Count + 1; col++)
                        {
                            //OBTIENE EL NOMBRE DEL EMPLEADO DEL ARCHIVO DE EXCEL
                            string nombreEmpleado = Convert.ToString(row[2]).Trim();
                            //  string cedula = Convert.ToString(row[1]).Trim();

                            switch (col)
                            {
                            case 0:    //OBTIENE LA CEDULA
                                string codigo = Convert.ToString(row[col]).Trim();

                                if (codigo.Length == 9)
                                {
                                    codigo = "0" + codigo;
                                }


                                ro_Empleado_Info emp = new ro_Empleado_Info();
                                try
                                {
                                    emp = lstTodosEmp.First(var => var.InfoPersona.pe_cedulaRuc == codigo);
                                }
                                catch (Exception ex)
                                {
                                    string arreglo = ToString();
                                    tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                                    tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                                    oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                                    mensaje = ex.InnerException + " " + ex.Message;
                                }
                                if (emp.IdEmpleado != 0)
                                {
                                    info.IdEmpleado = emp.IdEmpleado;
                                    info.em_codigo  = emp.em_codigo;
                                    // info.InfoNovedadDet.em_codigo = emp.em_codigo;
                                    info.em_nombre = emp.InfoPersona.pe_nombreCompleto;
                                    // info.InfoNovedadDet.em_nombre = emp.InfoPersona.pe_nombreCompleto;
                                    info.FechaPago = fecha_Excel;

                                    //  info.InfoNovedadDet.FechaPago = fecha_Excel;
                                    info.EstadoCobro = "PEN";

                                    //  info.InfoNovedadDet.EstadoCobro = "PEN";
                                    info.Estado = "A";
                                    // info.InfoNovedadDet.Estado = "A";
                                    // info.existeerror = "N";
                                }
                                else
                                {
                                    info.IdEmpleado = 0;
                                    info.em_cedula  = codigo;
                                    // info.InfoNovedadDet.em_cedula = "ERROR";

                                    info.em_codigo = "";
                                    // info.InfoNovedadDet.em_codigo = "Empleado no existe en la Base.";


                                    info.em_nombre = nombreEmpleado;
                                    // info.InfoNovedadDet.em_nombre = "Verifique por favor.";


                                    info.FechaPago = fecha_Excel;
                                    //info.InfoNovedadDet.FechaPago = fecha_Excel;

                                    info.EstadoCobro = "";
                                    // info.InfoNovedadDet.EstadoCobro = "";

                                    info.Estado = "I";
                                    // info.InfoNovedadDet.Estado = "";

                                    info.existeerror = "ERROR";
                                    // info.InfoNovedadDet.existeerror = "ERROR";

                                    info.Observacion = "Empleado no existe en la Base... revise por favor.   ";
                                }

                                break;

                            case 2:    //OBTIENE LA OBSERVACION

                                string prestamo = Convert.ToString(row[col]);
                                info.Observacion = info.Observacion + prestamo;
                                // info.InfoNovedadDet.Observacion = info.InfoNovedadDet.Observacion + prestamo;
                                break;

                            case 3:
                                string valor_Excel = Convert.ToString(row[col]);
                                double valor       = Convert.ToDouble(valor_Excel);
                                info.Valor = valor;
                                // info.InfoNovedadDet.Valor = valor;

                                break;

                            default:
                                break;
                            }
                        }
                        info.Secuencia = Sec_Novedad;
                        lista.Add(info);
                    }
                }
                else
                {
                    msg   = "Por favor verifique que el archivo tenga el formato correcto.\r Son 7 columnas.";
                    lista = new List <ro_Empleado_Novedad_Det_Info>();
                }

                return(lista);
            }
            catch (Exception ex)
            {
                string arreglo = ToString();
                tb_sis_Log_Error_Vzen_Data oDataLog      = new tb_sis_Log_Error_Vzen_Data();
                tb_sis_Log_Error_Vzen_Info Log_Error_sis = new tb_sis_Log_Error_Vzen_Info(ex.ToString(), "", arreglo, "", "", "", "", "", DateTime.Now);
                mensaje = ex.InnerException + " " + ex.Message;
                oDataLog.Guardar_Log_Error(Log_Error_sis, ref mensaje);
                throw new Exception(ex.InnerException.ToString());
            }
        }