public Boolean GrabarBD(ro_Archivo_IESS_Generacion_Info info, string nombreArchivo, string carSeparador, ref string msg) { try { return(oData.GrabarBD(info, nombreArchivo, carSeparador, ref msg)); } 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("", "GrabarBD", ex.Message), ex) { EntityType = typeof(ro_Archivo_IESS_Generacion_Bus) }; } }
public Boolean GrabarBD(ro_Archivo_IESS_Generacion_Info info, string nombreArchivo, string carSeparador, ref string msg) { try { string linea = ""; //CAMPOS BASICOS linea += info.Ruc + carSeparador; linea += info.CodigoSucursal.PadLeft(4, '0') + carSeparador; linea += info.AnioActual + carSeparador; linea += info.MesActual.PadLeft(2, '0') + carSeparador; linea += info.TipoMovimiento + carSeparador; linea += info.NoCedula + carSeparador; switch (info.TipoMovimiento) { //1. Archivo para novedades de entrada (Aviso de entrada). case "ENT": linea += info.FechaIngresoEmpresa.ToString("yyyyMMdd") + carSeparador; linea += info.FechaIngresoIESS.ToString("yyyyMMdd") + carSeparador; linea += info.Jornada + carSeparador; linea += info.CodigoSeguroSocial + carSeparador; linea += info.CodigoTipoEmpleador + carSeparador; linea += info.RelacionTrabajo + carSeparador; linea += info.Cargo + carSeparador; linea += info.CodigoActividaSectorial + carSeparador; linea += info.Sueldo.ToString("F2") + carSeparador; linea += info.OrigenPago; break; //2. Archivo para novedades de salida (Aviso de salida) case "SAL": linea += info.FechaSalida.ToString("yyyyMMdd") + carSeparador; linea += info.Causa + carSeparador; linea += info.FechaFallecimiento; break; //3. Archivo para novedades de modificación de sueldo (Aviso de nuevo sueldo) case "MSU": linea += info.NuevoSueldo.ToString("F2"); break; //4. Archivo para Novedades de Variación de Sueldo (Aviso de variación de sueldo por extras) case "INS": linea += info.ValorExtra.ToString("F2") + carSeparador; linea += info.Causa; break; //5. Archivo para Fondos de Reserva (Planilla de fondos de Reserva) case "PFR": linea += info.SueldoTotal.ToString("F2") + carSeparador; linea += info.Periodo + carSeparador; linea += info.NoMesesLaborados; break; //6. Archivo para Fondos de Reserva Mensual (Planilla de Fondos de Reserva Mensual) Nuevo case "PFM": linea += info.SueldoTotal.ToString("F2") + carSeparador; linea += info.Periodo + carSeparador; linea += info.NoMesesLaborados + carSeparador; linea += info.TipoPeriodo; break; //7. Ajustes de Fondos de Reserva Públicos con fecha de aprobación del presupuesto (MEF) case "PPF": linea += info.SueldoTotal.ToString("F2") + carSeparador; linea += info.Periodo + carSeparador; linea += info.NoMesesLaborados + carSeparador; linea += info.FechaAprobacionMinisterio.ToString("yyyyMMdd") + carSeparador; linea += info.NoOficioAprobado + carSeparador; linea += info.TipoPeriodo; if (info.RucAnterior.Length > 0) { linea += carSeparador + info.RucAnterior; //[Opcional en caso de tener cambio de RUC determinado por el MEF] } break; //8. Ajustes de Fondos de Reserva Públicos y Privados Normales Anuales y Mensuales case "PFN": linea += info.SueldoTotal.ToString("F2") + carSeparador; linea += info.Periodo + carSeparador; linea += info.NoMesesLaborados + carSeparador; linea += info.TipoPeriodo; if (info.RucAnterior.Length > 0) { linea += carSeparador + info.RucAnterior; //[Opcional en caso de tener cambio de RUC determinado por el MEF] } break; //9. Archivo para novedades de días no laborados (Aviso de días no laborados) case "MND": linea += info.FechaInicioDiasNoLaborados.ToString("yyyyMMdd") + carSeparador; linea += info.DiasNoLaborados; break; //11. Archivo para novedades de Retroactivos y Diferencias case "PRA": linea += info.FechaSuscripcion.ToString("yyyyMMdd") + carSeparador; linea += info.ValorIncremento.ToString("F2"); break; } using (System.IO.StreamWriter file = new System.IO.StreamWriter(nombreArchivo, true)) { file.WriteLine(linea); file.Close(); } return(true); } 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()); } }
public List <ro_Archivo_IESS_Generacion_Info> pu_GenerarBatch(int idEmpresa, ro_periodo_x_ro_Nomina_TipoLiqui_Info infoPeriodo, string idTipoNovedad, string codigoSucursal) { try { List <ro_Empleado_Info> oListRo_Empleado_Info = new List <ro_Empleado_Info>(); List <ro_Rol_Detalle_Info> oListRo_Rol_Detalle_Info = new List <ro_Rol_Detalle_Info>(); List <ro_Archivo_IESS_Generacion_Info> Listado = new List <ro_Archivo_IESS_Generacion_Info>(); //OBTENER LOS DATOS DE LA EMPRESA tb_Empresa_Info oTb_Empresa_Info = new tb_Empresa_Info(); oTb_Empresa_Info = oTb_Empresa_Bus.Get_Info_Empresa(idEmpresa); //OBTENER EL PERIODO oListRo_Empleado_Info = oRo_Empleado_Bus.Get_List_Empleado_(idEmpresa).Where(v => v.em_estado == "A").ToList(); switch (idTipoNovedad) { case "ENT": //OBTENGO LOS EMPLEADOS ACTIVOS EN EL PERIODO CORRESPONDIENTE oListRo_Empleado_Info = oRo_Empleado_Bus.GetListPorNovedadAvisoEntrada(idEmpresa, oRo_PeriodoInfo.pe_FechaIni, oRo_PeriodoInfo.pe_FechaFin).Where(v => v.em_estado == "A" && v.em_status == "EST_ACT").ToList(); if (oListRo_Empleado_Info.Count > 0) { foreach (ro_Empleado_Info item in oListRo_Empleado_Info) { ro_Archivo_IESS_Generacion_Info info = new ro_Archivo_IESS_Generacion_Info(); info.Ruc = oTb_Empresa_Info.em_ruc; info.CodigoSucursal = codigoSucursal; info.AnioActual = Convert.ToString(infoPeriodo.pe_FechaIni.Year); info.MesActual = Convert.ToString(infoPeriodo.pe_FechaIni.Month); info.TipoMovimiento = idTipoNovedad; info.NoCedula = item.InfoPersona.pe_cedulaRuc.Trim(); info.FechaIngresoEmpresa = Convert.ToDateTime(item.em_fecha_ingreso); info.FechaIngresoIESS = Convert.ToDateTime(item.em_fechaIngaRol); info.Jornada = "1"; info.CodigoSeguroSocial = "R"; info.CodigoTipoEmpleador = "2"; info.RelacionTrabajo = "06"; info.Cargo = item.cargo_Descripcion; info.CodigoActividaSectorial = item.CodigoSectorialIESS; info.Sueldo = item.SueldoActual; info.OrigenPago = "P"; info.nombre = item.pe_apellido + " " + item.pe_nombre; info.nomina = item.Nomina; info.departamento = item.departamento; Listado.Add(info); } } break; case "SAL": //OBTENGO LOS EMPLEADOS LIQUIDADOS EN EL PERIODO CORRESPONDIENTE oListRo_Empleado_Info = oRo_Empleado_Bus.GetListPorNovedadAvisoSalida(idEmpresa, oRo_PeriodoInfo.pe_FechaIni, oRo_PeriodoInfo.pe_FechaFin).Where(v => v.em_estado == "I" && v.em_status == "EST_LIQ").ToList(); if (oListRo_Empleado_Info.Count > 0) { foreach (ro_Empleado_Info item in oListRo_Empleado_Info) { ro_Archivo_IESS_Generacion_Info info = new ro_Archivo_IESS_Generacion_Info(); info.Ruc = oTb_Empresa_Info.em_ruc; info.CodigoSucursal = codigoSucursal; info.AnioActual = Convert.ToString(infoPeriodo.pe_FechaIni.Year); info.MesActual = Convert.ToString(infoPeriodo.pe_FechaIni.Month); info.TipoMovimiento = idTipoNovedad; info.NoCedula = item.InfoPersona.pe_cedulaRuc.Trim(); info.FechaSalida = Convert.ToDateTime(item.em_fechaSalida); info.Causa = "A"; info.FechaFallecimiento = "00000000"; info.nombre = item.pe_apellido + " " + item.pe_nombre; info.nomina = item.Nomina; info.departamento = item.departamento; Listado.Add(info); } } break; case "MSU": //OBTENGO LOS EMPLEADOS DONDE LOS SUELDOS HAYAN SIDO MODIFICADOS EN EL PERIODO CORRESPONDIENTE oListRo_Empleado_Info = oRo_Empleado_Bus.GetListPorNovedadAvisoNuevoSueldo(idEmpresa, infoPeriodo.pe_FechaIni, infoPeriodo.pe_FechaFin).Where(v => v.em_estado == "A").ToList(); if (oListRo_Empleado_Info.Count > 0) { foreach (ro_Empleado_Info item in oListRo_Empleado_Info) { ro_Archivo_IESS_Generacion_Info info = new ro_Archivo_IESS_Generacion_Info(); info.Ruc = oTb_Empresa_Info.em_ruc; info.CodigoSucursal = codigoSucursal; info.AnioActual = Convert.ToString(infoPeriodo.pe_FechaIni.Year); info.MesActual = Convert.ToString(infoPeriodo.pe_FechaIni.Month); info.TipoMovimiento = idTipoNovedad; info.NoCedula = item.InfoPersona.pe_cedulaRuc.Trim(); info.ValorExtra = item.SueldoActual; info.Causa = "0"; info.nombre = item.InfoPersona.pe_nombreCompleto; info.nomina = item.Nomina; info.departamento = item.de_descripcion; Listado.Add(info); } } break; case "INS": //OBTENGO LOS EMPLEADOS ACTVIOS DE LA NOMINA SELECCIONADA oListRo_Empleado_Info = oRo_Empleado_Bus.Get_List_Empleado_(idEmpresa).Where(v => v.em_estado == "A").ToList(); if (oListRo_Empleado_Info.Count > 0) { foreach (ro_Empleado_Info item in oListRo_Empleado_Info) { double valorExtra = 0; //OBTENGO LA SUMATORIA DE LOS RUBROS QUE QUE PERTENECEN AL GRUPO COMPONENTE SALARIAL (HORAS EXTRAS, COMISIONES, ETC) //EN EL PERIODO CORRESPONDIENTE valorExtra = oRo_Rol_Detalle_Bus.GetList_InformeIESS(idEmpresa, item.IdEmpleado, infoPeriodo.IdPeriodo).Where(v => v.rub_grupo == 62).Sum(v => v.Valor); if (valorExtra > 0) { ro_Archivo_IESS_Generacion_Info info = new ro_Archivo_IESS_Generacion_Info(); info.Ruc = oTb_Empresa_Info.em_ruc; info.CodigoSucursal = codigoSucursal; info.AnioActual = Convert.ToString(infoPeriodo.pe_FechaIni.Year); info.MesActual = Convert.ToString(infoPeriodo.pe_FechaIni.Month); info.TipoMovimiento = idTipoNovedad; info.NoCedula = item.InfoPersona.pe_cedulaRuc.Trim(); info.ValorExtra = valorExtra; info.Causa = "O"; info.nombre = item.InfoPersona.pe_nombreCompleto; info.nomina = item.Nomina; info.departamento = item.de_descripcion; Listado.Add(info); } } } break; case "PFR": break; case "PFM": //OBTENGO LOS EMPLEADOS ACTIVOS DE LA NOMINA SELECCIONADA oListRo_Empleado_Info = oRo_Empleado_Bus.Get_List_Empleado_(idEmpresa).Where(v => v.em_estado == "A").ToList(); if (oListRo_Empleado_Info.Count > 0) { foreach (ro_Empleado_Info item in oListRo_Empleado_Info) { double valorTotal = 0; //OBTENGO LA SUMATORIA DEL RUBRO DE FONDO DE RESERVA EN EL PERIODO CORRESPONDIENTE valorTotal = oRo_Rol_Detalle_Bus.GetList_InformeIESS(idEmpresa, item.IdEmpleado, infoPeriodo.IdPeriodo).Where(v => v.IdRubro == "296").Sum(v => v.Valor); if (valorTotal > 0) { ro_Archivo_IESS_Generacion_Info info = new ro_Archivo_IESS_Generacion_Info(); info.Ruc = oTb_Empresa_Info.em_ruc; info.CodigoSucursal = codigoSucursal; info.AnioActual = Convert.ToString(infoPeriodo.pe_FechaIni.Year); info.MesActual = Convert.ToString(infoPeriodo.pe_FechaIni.Month); info.TipoMovimiento = idTipoNovedad; info.NoCedula = item.InfoPersona.pe_cedulaRuc.Trim(); info.SueldoTotal = valorTotal; info.Periodo = info.AnioActual + "-" + info.MesActual + " A " + info.AnioActual + "-" + info.MesActual; info.NoMesesLaborados = "01"; info.TipoPeriodo = "G"; info.nombre = item.pe_apellido + " " + item.pe_nombre; info.nomina = item.Nomina; info.departamento = item.departamento; Listado.Add(info); } } } break; case "PPF": break; case "PFN": break; case "MND": break; case "RRT": break; } return(Listado); } 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("", "pu_GenerarBatch", ex.Message), ex) { EntityType = typeof(ro_Archivo_IESS_Generacion_Bus) }; } }