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