public bool guardarDB(ro_contrato_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_empleado Entity_Empleado = Context.ro_empleado.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdEmpleado == info.IdEmpleado);
                    if (Entity_Empleado == null)
                    {
                        return(false);
                    }

                    Entity_Empleado.em_fechaIngaRol = info.FechaInicio.Date;

                    ro_contrato Entity = new ro_contrato
                    {
                        IdEmpresa       = info.IdEmpresa,
                        IdEmpleado      = info.IdEmpleado,
                        IdContrato      = get_id(info.IdEmpresa, info.IdEmpleado),
                        IdContrato_Tipo = info.IdContrato_Tipo,
                        Observacion     = info.Observacion,
                        FechaInicio     = info.FechaInicio.Date,
                        NumDocumento    = info.NumDocumento,
                        FechaFin        = info.FechaFin.Date,
                        Sueldo          = info.Sueldo,
                        IdNomina        = info.IdNomina,
                        Estado          = info.Estado = "A",
                        IdUsuario       = info.IdUsuario,
                        EstadoContrato  = info.EstadoContrato,
                        Fecha_Transac   = info.Fecha_Transac = DateTime.Now
                    };
                    if (info.EstadoContrato == cl_enumeradores.eEstadoContratoRRHH.ECT_ACT.ToString())
                    {
                        Entity_Empleado.em_fechaSalida = null;
                    }
                    else
                    {
                        Entity_Empleado.em_fechaSalida = info.FechaFin.Date;
                    }
                    Context.ro_contrato.Add(Entity);

                    Context.SaveChanges();
                }
                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #2
0
 public Boolean ModificarDB(ro_contrato_Info prI, ref string mensaje)
 {
     try
     {
         return(oData.ModificarDB(prI, ref mensaje));
     }
     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("", "ModificarDB", ex.Message), ex)
               {
                   EntityType = typeof(ro_contrato_bus)
               };
     }
 }
Exemple #3
0
 public Boolean ActualizarContrato(ro_contrato_Info info)
 {
     try
     {
         return(oData.ActualizarContrato(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("", "ActualizarContrato", ex.Message), ex)
               {
                   EntityType = typeof(ro_contrato_bus)
               };
     }
 }
Exemple #4
0
 public ActionResult Nuevo()
 {
     try
     {
         ro_contrato_Info info = new ro_contrato_Info();
         info.IdNomina    = 1;
         info.FechaInicio = DateTime.Now.Date;
         info.FechaFin    = DateTime.Now.Date;
         cargar_combo();
         return(View(info));
     }
     catch (Exception)
     {
         throw;
     }
 }
        public bool modificarDB(ro_contrato_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_contrato Entity = Context.ro_contrato.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdEmpleado == info.IdEmpleado && q.IdContrato == info.IdContrato);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.IdContrato_Tipo = info.IdContrato_Tipo;
                    Entity.Observacion     = info.Observacion;
                    Entity.FechaInicio     = info.FechaInicio.Date;
                    Entity.FechaFin        = info.FechaFin.Date;
                    Entity.NumDocumento    = info.NumDocumento;
                    Entity.Sueldo          = info.Sueldo;
                    Entity.IdNomina        = info.IdNomina;
                    Entity.IdUsuarioUltMod = info.IdUsuarioUltMod;
                    Entity.EstadoContrato  = info.EstadoContrato;
                    Entity.Fecha_UltMod    = info.Fecha_UltMod = DateTime.Now;

                    ro_empleado Entity_Empleado = Context.ro_empleado.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdEmpleado == info.IdEmpleado);
                    if (Entity_Empleado == null)
                    {
                        return(false);
                    }
                    if (info.EstadoContrato == cl_enumeradores.eEstadoContratoRRHH.ECT_ACT.ToString())
                    {
                        Entity_Empleado.em_fechaSalida = null;
                    }
                    else
                    {
                        Entity_Empleado.em_fechaSalida = info.FechaFin.Date;
                    }
                    Entity_Empleado.em_fechaIngaRol = info.FechaInicio.Date;
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
        public bool modificarDB(ro_contrato_Info info)
        {
            try
            {
                bool bandera = true;
                if (info.EstadoContrato == cl_enumeradores.eEstadoContratoRRHH.ECT_PLQ.ToString())
                {
                    bandera = data_empleado.modificar_estadoDB(info.IdEmpresa, info.IdEmpleado, cl_enumeradores.eEstadoEmpleadoRRHH.EST_PLQ.ToString(), info.FechaInicio.Date, info.FechaFin.Date);
                }

                bandera = odata.modificarDB(info);

                return(bandera);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #7
0
        public List <ro_contrato_Info> GetListPorEmpleado(int IdEmpresa, decimal IdEmpleado)
        {
            try
            {
                lista = new List <ro_contrato_Info>();
                EntitiesRoles ORol = new EntitiesRoles();

                var sresult = from A in ORol.vwRo_Contrato
                              where A.IdEmpresa == IdEmpresa &&
                              A.IdEmpleado == IdEmpleado
                              select A;

                foreach (var item in sresult)
                {
                    ro_contrato_Info Reg = new ro_contrato_Info();

                    Reg.IdEmpresa       = item.IdEmpresa;
                    Reg.IdContrato      = item.IdContrato;
                    Reg.IdContrato_Tipo = item.IdContrato_Tipo;
                    Reg.ca_descripcion  = item.ca_descripcion;
                    Reg.IdEmpleado      = item.IdEmpleado;
                    Reg.NumDocumento    = item.NumDocumento;
                    Reg.FechaInicio     = item.FechaInicio;
                    Reg.FechaFin        = item.FechaFin;
                    Reg.Estado          = item.Estado;
                    Reg.Observacion     = item.Observacion;
                    Reg.EstadoContrato  = item.EstadoContrato;

                    lista.Add(Reg);
                }

                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());
            }
        }
Exemple #8
0
 public ActionResult Anular(ro_contrato_Info info)
 {
     try
     {
         if (!bus_contrato.anularDB(info))
         {
             cargar_combo();
             return(View(info));
         }
         else
         {
             return(RedirectToAction("Index"));
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
        public ActionResult Nuevo()
        {
            try
            {
                ro_contrato_Info info = new ro_contrato_Info
                {
                    IdEmpresa            = Convert.ToInt32(SessionFixed.IdEmpresa),
                    IdNomina             = 1,
                    FechaInicio          = DateTime.Now.Date,
                    FechaFin             = DateTime.Now.Date,
                    IdTransaccionSession = Convert.ToDecimal(SessionFixed.IdTransaccionSession)
                };

                cargar_combo();
                return(View(info));
            }
            catch (Exception)
            {
                throw;
            }
        }
 private void Limpiar()
 {
     try
     {
         cmbEmpleado.EditValue     = null;
         cmbTipoContrato.EditValue = null;
         // cmbEstado.EditValue = null;
         txtIdContrato.Text      = "";
         txtNoContrato.Text      = "";
         txtObservacion.Text     = "";
         dtpFechaInicio.Value    = DateTime.Now;
         dtpFechaFin.Value       = DateTime.Now.AddMonths(3);
         cmbEmpleado.Enabled     = true;
         cmbTipoContrato.Enabled = true;
         cargarCombos();
         CheckEstado.Checked = true;
         InfoContrato        = new ro_contrato_Info();
     }
     catch (Exception ex)
     {
     }
 }
        public ro_contrato_Info get_info_contrato_empleado(int IdEmpresa, decimal IdEmpleado)
        {
            try
            {
                ro_contrato_Info info = new ro_contrato_Info();

                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_contrato Entity = Context.ro_contrato.FirstOrDefault(q => q.IdEmpresa == IdEmpresa && q.IdEmpleado == IdEmpleado && q.Estado == "A");
                    if (Entity == null)
                    {
                        return(null);
                    }

                    info = new ro_contrato_Info
                    {
                        IdEmpresa       = Entity.IdEmpresa,
                        IdEmpleado      = Entity.IdEmpleado,
                        IdContrato      = Entity.IdContrato,
                        IdContrato_Tipo = Entity.IdContrato_Tipo,
                        Observacion     = Entity.Observacion,
                        FechaInicio     = Entity.FechaInicio.Date,
                        FechaFin        = Entity.FechaFin.Date,
                        NumDocumento    = Entity.NumDocumento,
                        EstadoContrato  = Entity.EstadoContrato,
                        Estado          = Entity.Estado,
                        Sueldo          = Entity.Sueldo,
                        IdNomina        = Entity.IdNomina,
                    };
                }

                return(info);
            }
            catch (Exception)
            {
                throw;
            }
        }
 public bool guardarDB(ro_Acta_Finiquito_Info info)
 {
     try
     {
         info_contrato   = bus_contrato.get_info_contato_a_liquidar(info.IdEmpresa, info.IdEmpleado);
         odata           = new ro_Acta_Finiquito_Data();
         info.Ingresos   = info.lst_detalle.Where(v => v.Valor > 0).Sum(v => v.Valor);
         info.Egresos    = info.lst_detalle.Where(v => v.Valor < 0).Sum(v => v.Valor);
         info.IdContrato = info_contrato.IdContrato;
         if (odata.guardarDB(info))
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
Exemple #13
0
 public Boolean AnularDB(ro_contrato_Info info)
 {
     try
     {
         using (EntitiesRoles context = new EntitiesRoles())
         {
             var contact = context.ro_contrato.First(minfo => minfo.IdEmpresa == info.IdEmpresa && minfo.IdContrato == info.IdContrato);
             contact.Estado    = "I";
             contact.MotiAnula = info.MotiAnula;
             context.SaveChanges();
         }
         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 bool anularDB(ro_contrato_Info info)
        {
            try
            {
                using (Entities_rrhh Context = new Entities_rrhh())
                {
                    ro_contrato Entity = Context.ro_contrato.FirstOrDefault(q => q.IdEmpresa == info.IdEmpresa && q.IdEmpleado == info.IdEmpleado && q.IdContrato == info.IdContrato);
                    if (Entity == null)
                    {
                        return(false);
                    }
                    Entity.Estado          = info.Estado = "I";
                    Entity.IdUsuarioUltAnu = info.IdUsuarioUltAnu;
                    Entity.FechaHoraAnul   = DateTime.Now;
                    Context.SaveChanges();
                }

                return(true);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #15
0
        private void wizardControl1_NextClick(object sender, DevExpress.XtraWizard.WizardCommandButtonClickEventArgs e)
        {
            try
            {
                if (e.Page.Name == "wizardPage1")
                {
                    //if (!PU_CARGAR_EXCEL_GRILLA())
                    PU_CARGAR_EXCEL_GRILLA();
                }

                if (e.Page.Name == "wizardPage3")
                {
                    string MensajeLog     = "Ingreso Exitoso.";
                    string MensajeWarning = "";
                    string listaLog       = "";
                    this.rtbLog.Text = "";
                    bool    flagSinError      = true;
                    bool    flagNuevoEmpleado = true;
                    bool    flagNuevaPersona  = true;
                    decimal idEmpleado        = 0;
                    decimal idPersona         = 0;
                    string  cedula            = "";
                    int     IdEmpresa         = param.IdEmpresa;

                    if (this.gridControlconsultaEmp.DataSource != null)
                    {
                        if (rgImportar.SelectedIndex == 0)
                        {
                            MensajeWarning = "Atencion esta a punto de eliminar toda la informacion actual, y reemplazarla con la nueva. Esta seguro de continuar?";
                        }
                        else
                        {
                            MensajeWarning = "Atencion esta a punto de proceder. Esta seguro de continuar?";
                        }
                        lblmsg3.Visible = true;
                        if (MessageBox.Show(MensajeWarning, "SISTEMAS", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
                        {
                            if (rgImportar.SelectedIndex == 0)
                            {
                                if (!_EmpleadoBus.Eliminar_Empleados(IdEmpresa, ref MensajeError))
                                {
                                    MensajeLog   = "Error al eliminar registros en bases de datos \n" + MensajeError;
                                    flagSinError = false;
                                }
                            }

                            if (flagSinError == true)//si es falso es porque entro al Eliminar y tuvo error, realmente no deberia hacer nada.
                            {
                                foreach (ro_Empleado_Info item in _ListEmpleadoInfo)
                                {
                                    flagSinError = true;
                                    cedula       = item.pe_cedulaRuc;
                                    _PersonaInfo = _PersonaBus.Get_Info_Persona(cedula);
                                    if (_PersonaInfo.IdPersona != 0)
                                    {
                                        idPersona = _PersonaInfo.IdPersona;
                                        // item.InfoPersona = _PersonaInfo;
                                        item.InfoPersona.IdPersona = idPersona;

                                        flagNuevaPersona = false;//ya esta la persona en la base de datos
                                    }
                                    else
                                    {
                                        _PersonaInfo     = item.InfoPersona;
                                        flagNuevaPersona = true;//es nueva persona
                                        if (!_PersonaBus.GrabarDB(_PersonaInfo, ref idPersona, ref MensajeError))
                                        {
                                            listaLog    += "Ced: " + item.pe_cedulaRuc + "\t" + item.pe_NomCompleto + " -" + "\n";
                                            flagSinError = false;
                                        }
                                    }
                                    if (flagSinError == true)//si es false, porque  dio error en persona, para que intentar el empleado
                                    {
                                        item.IdPersona             = idPersona;
                                        item.InfoPersona.IdPersona = idPersona;
                                        if ((rgImportar.SelectedIndex == 0) || (flagNuevaPersona == true))
                                        {
                                            flagNuevoEmpleado = true;
                                        }
                                        else//si no elimino previamente todos los empleados, y la persona no es nueva busco el empledo
                                        {
                                            _EmpleadoInfoBase = _EmpleadoBus.Get_Info_Empleado_vs_Persona(IdEmpresa, idPersona);//busco el empleado por la persona
                                            if (_EmpleadoInfoBase.IdEmpleado == 0)
                                            {
                                                flagNuevoEmpleado = true;//si no encontro empleado, entonces es nuevo
                                            }
                                            else
                                            {
                                                item.IdEmpleado   = _EmpleadoInfoBase.IdEmpleado;
                                                flagNuevoEmpleado = false;
                                            }
                                        }



                                        //AGREGAR RUBROS ACUMULADOS
                                        item.oListRo_empleado_x_rubro_acumulado_Info = new List <ro_empleado_x_rubro_acumulado_Info>();
                                        if (item.acumulaDecimoTercer == "S")
                                        {
                                            ro_empleado_x_rubro_acumulado_Info oRo_empleado_x_rubro_acumulado_Info = new ro_empleado_x_rubro_acumulado_Info();
                                            oRo_empleado_x_rubro_acumulado_Info.IdEmpresa  = item.IdEmpresa;
                                            oRo_empleado_x_rubro_acumulado_Info.IdEmpleado = item.IdEmpleado;
                                            oRo_empleado_x_rubro_acumulado_Info.IdRubro    = "290";
                                            item.oListRo_empleado_x_rubro_acumulado_Info.Add(oRo_empleado_x_rubro_acumulado_Info);
                                        }

                                        if (item.acumulaDecimoCuarto == "S")
                                        {
                                            ro_empleado_x_rubro_acumulado_Info oRo_empleado_x_rubro_acumulado_Info = new ro_empleado_x_rubro_acumulado_Info();
                                            oRo_empleado_x_rubro_acumulado_Info.IdEmpresa  = item.IdEmpresa;
                                            oRo_empleado_x_rubro_acumulado_Info.IdEmpleado = item.IdEmpleado;
                                            oRo_empleado_x_rubro_acumulado_Info.IdRubro    = "289";
                                            item.oListRo_empleado_x_rubro_acumulado_Info.Add(oRo_empleado_x_rubro_acumulado_Info);
                                        }

                                        if (item.acumulaFondoReserva == "S")
                                        {
                                            ro_empleado_x_rubro_acumulado_Info oRo_empleado_x_rubro_acumulado_Info = new ro_empleado_x_rubro_acumulado_Info();
                                            oRo_empleado_x_rubro_acumulado_Info.IdEmpresa  = item.IdEmpresa;
                                            oRo_empleado_x_rubro_acumulado_Info.IdEmpleado = item.IdEmpleado;
                                            oRo_empleado_x_rubro_acumulado_Info.IdRubro    = "296";
                                            item.oListRo_empleado_x_rubro_acumulado_Info.Add(oRo_empleado_x_rubro_acumulado_Info);
                                        }


                                        //AGREGAR NOMINA
                                        if (item.IdNomina_Tipo > 0)
                                        {
                                            ro_Empleado_TipoNomina_Info oRo_Empleado_TipoNomina_Info = new ro_Empleado_TipoNomina_Info();
                                            item.oListRo_Empleado_TipoNomina_Info      = new List <ro_Empleado_TipoNomina_Info>();
                                            oRo_Empleado_TipoNomina_Info.IdEmpresa     = item.IdEmpresa;
                                            oRo_Empleado_TipoNomina_Info.IdEmpleado    = item.IdEmpleado;
                                            oRo_Empleado_TipoNomina_Info.IdNomina_Tipo = item.IdNomina_Tipo;
                                            item.oListRo_Empleado_TipoNomina_Info.Add(oRo_Empleado_TipoNomina_Info);
                                        }

                                        //AGREGAR CENTRO DE COSTO
                                        if (item.IdCentroCosto != "")
                                        {
                                            item.oListro_empleado_x_centro_costo_Info = new List <ro_empleado_x_centro_costo_Info>();
                                            ro_empleado_x_centro_costo_Info oRo_empleado_x_centro_costo_Info = new ro_empleado_x_centro_costo_Info();
                                            oRo_empleado_x_centro_costo_Info.IdEmpresa     = item.IdEmpresa;
                                            oRo_empleado_x_centro_costo_Info.IdEmpleado    = item.IdEmpleado;
                                            oRo_empleado_x_centro_costo_Info.IdCentroCosto = item.IdCentroCosto;

                                            item.oListro_empleado_x_centro_costo_Info.Add(oRo_empleado_x_centro_costo_Info);
                                        }


                                        decimal idP = 0;



                                        // sueldo actual

                                        //GRABAR NUEVO SUELDO
                                        ro_HistoricoSueldo_Info oRo_HistoricoSueldo_Info = new ro_HistoricoSueldo_Info();

                                        oRo_HistoricoSueldo_Info.IdEmpresa             = item.IdEmpresa;
                                        oRo_HistoricoSueldo_Info.IdEmpleado            = idEmpleado;
                                        oRo_HistoricoSueldo_Info.Secuencia             = 1;
                                        oRo_HistoricoSueldo_Info.SueldoActual          = item.em_Sueldo;
                                        oRo_HistoricoSueldo_Info.SueldoAnterior        = 0;
                                        oRo_HistoricoSueldo_Info.PorIncrementoSueldo   = 0;
                                        oRo_HistoricoSueldo_Info.ValorIncrementoSueldo = 0;
                                        oRo_HistoricoSueldo_Info.ca_descripcion        = "-";
                                        oRo_HistoricoSueldo_Info.de_descripcion        = "-";
                                        oRo_HistoricoSueldo_Info.Motivo        = "Importación de Empleados mediante Plantilla";
                                        oRo_HistoricoSueldo_Info.Fecha         = item.fechaInicioContrato;
                                        oRo_HistoricoSueldo_Info.idUsuario     = param.IdUsuario;
                                        oRo_HistoricoSueldo_Info.Fecha_Transac = DateTime.Now;
                                        //BORRRA VALORES PREVIOS DEL HISTORIAL DE SUELDOS
                                        // oRo_HistoricoSueldo_Bus.EliminarBD(item.IdEmpresa, item.IdEmpleado, ref MensajeError);

                                        item.InfoSueldo = oRo_HistoricoSueldo_Info;


                                        if (!_EmpleadoBus.GrabarDB(item, ref idEmpleado, ref idP, ref MensajeError))
                                        {
                                            listaLog += "Ced: " + item.pe_cedulaRuc + "\t" + item.pe_NomCompleto + " _" + "\n";
                                        }
                                        else
                                        {
                                            //GRABAR NUEVO CONTRATO
                                            ro_contrato_bus  oRo_contrato_bus  = new ro_contrato_bus();
                                            ro_contrato_Info oRo_contrato_Info = new ro_contrato_Info();

                                            oRo_contrato_Info.IdEmpresa       = item.IdEmpresa;
                                            oRo_contrato_Info.IdEmpleado      = idEmpleado;
                                            oRo_contrato_Info.IdContrato_Tipo = item.idTipoContrato;
                                            oRo_contrato_Info.NumDocumento    = item.NoDocumentoContrato;
                                            oRo_contrato_Info.FechaInicio     = item.fechaInicioContrato;
                                            oRo_contrato_Info.FechaFin        = item.fechaFinContrato;
                                            oRo_contrato_Info.Observacion     = "Importación de Empleados mediante Plantilla";
                                            oRo_contrato_Info.Estado          = "A";
                                            oRo_contrato_Info.EstadoContrato  = "ECT_ACT";

                                            oRo_contrato_bus.GrabarDB(oRo_contrato_Info, ref MensajeError);
                                        }
                                    } //fin sin error /en la Persona
                                }     //fin for each
                            }         //fin sin error /al Eliminar
                            if (listaLog != "")
                            {
                                MensajeLog += " pero con errores:" + "\n" + listaLog + MensajeError;
                            }
                        }//Fin del warning del messageBox al aceptar viene el else
                        else
                        {
                            MensajeLog = "No se efectuo la operación. Operacion cancelada por el usuario.";
                        }
                        lblmsg3.Visible = false;
                    }//fin del grid no nulo
                    else
                    {
                        MensajeLog = "No existen Datos para importación.";
                    }
                    this.rtbLog.Text = MensajeLog;
                }//fin del wizardpage 3
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }
Exemple #16
0
        public Boolean GrabarDB(ro_contrato_Info ro_info, ref string mensaje)
        {
            try
            {
                int idContrato;
                using (EntitiesRoles context = new EntitiesRoles())
                {
                    EntitiesRoles EDB = new EntitiesRoles();

                    idContrato = getIdContrato(ro_info.IdEmpresa);

                    ro_info.IdContrato = idContrato;

                    var Q = from per in EDB.ro_contrato
                            where per.IdContrato == ro_info.IdContrato && per.IdEmpresa == ro_info.IdEmpresa
                            select per;

                    if (Q.ToList().Count == 0)
                    {
                        var address = new ro_contrato();

                        address.IdContrato = getIdContrato(ro_info.IdEmpresa);
                        if (ro_info.NumDocumento == null || ro_info.NumDocumento == "")
                        {
                            address.NumDocumento = address.IdContrato.ToString();
                        }
                        else
                        {
                            address.NumDocumento = ro_info.NumDocumento;
                        }
                        address.IdEmpleado      = ro_info.IdEmpleado;
                        address.IdContrato_Tipo = ro_info.IdContrato_Tipo;
                        address.FechaInicio     = ro_info.FechaInicio;
                        address.FechaFin        = ro_info.FechaFin;
                        address.Observacion     = ro_info.Observacion;
                        address.MotiAnula       = ro_info.MotiAnula;
                        address.Estado          = ro_info.Estado;
                        address.IdEmpresa       = ro_info.IdEmpresa;
                        address.EstadoContrato  = ro_info.EstadoContrato;

                        context.ro_contrato.Add(address);
                        context.SaveChanges();

                        if (ActualizarContrato(ro_info) == false)
                        {
                            mensaje = "Problemas al actualizar el contrato en el empleado..";
                            return(false);
                        }

                        mensaje = "Se ha procedido a grabar la información exitosamente..";
                    }
                    else
                    {
                        return(false);
                    }
                }
                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());
            }
        }