Example #1
0
 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());
            }
        }
Example #3
0
        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)
                      };
            }
        }