private void UpdateDetailB(IList<EPerContrato> col, object[] primKey)
        {
            if (col == null)
                return;

            IDOUpdate objDO = new RHDOMnt.PerContrato();
            RHDOMnt.Personal objDOPer = new RHDOMnt.Personal();
            EPersonal NewEPersonal = new EPersonal();

            foreach (EPerContrato objE in col)
            {

                object[] objRet = null;

                if (primKey != null)
                {
                    objE.IdPersonal = primKey[0].ToString();
                }

                switch (objE.EntityState)
                {

                    case EntityState.Added:
                        objRet = objDO.Insert(objE);

                        NewEPersonal.IdEmpresa = objE.IdEmpresa;
                        NewEPersonal.IdPersonal = objE.IdPersonal;
                        NewEPersonal.IdSituEmple = ConstSituacionEmpleado.ACTIVO_SUBSIDIADO;
                        NewEPersonal.IdMotivFin = "";
                        NewEPersonal.FeCese = null;
                        if (objE.StProrroga == ConstFlagEstado.ACTIVADO)
                        {
                            NewEPersonal.FeIngpla = null;
                        }
                        else
                        {
                            NewEPersonal.FeIngpla = objE.FeInicio;
                        }

                        objDOPer.UpdateEstadoFechaCese(NewEPersonal);

                        break;

                    case EntityState.Modified:
                        if (objE.StAnulado == ConstFlagEstado.DESACTIVADO)
                            objDO.Update(objE);
                        if (objE.StContrato == ConstFlagEstado.ACTIVADO)
                        {

                            NewEPersonal.IdEmpresa = objE.IdEmpresa;
                            NewEPersonal.IdPersonal = objE.IdPersonal;
                            NewEPersonal.IdSituEmple = ConstSituacionEmpleado.BAJA;
                            NewEPersonal.FeCese = objE.FeCese;
                            NewEPersonal.FeIngpla = null;
                            NewEPersonal.IdMotivFin = objE.IdMotivFin;
                            objDOPer.UpdateEstadoFechaCese(NewEPersonal);
                        }
                        else
                            objDO.Delete(objE);
                        break;

                }

            }
        }
        private object[] UpdateMaster(EPersonal entity)
        {
            if (entity == null)
                return null;

            IDOUpdate objDO = new RHDOMnt.Personal();

            if (entity.EntityState == EntityState.Unchanged)
                return null;

            object[] objRet = null;

            switch (entity.EntityState)
            {

                case EntityState.Added:
                    objRet = objDO.Insert(entity);
                    break;

                case EntityState.Modified:
                    if (entity.StAnulado == ConstFlagEstado.DESACTIVADO)
                        objDO.Update(entity);
                    else
                        objDO.Delete(entity);
                    break;

                case EntityState.Deleted:
                    objDO.Delete(entity);
                    break;

            }

            return objRet;
        }
        private void DeleteMaster(EPersonal entity)
        {
            IDOUpdate objDO = new RHDOMnt.Personal();

            if (entity.EntityState == EntityState.Unchanged)
                return;

            objDO.Delete(entity);
        }