public void AddToSolicitud_Estados_HorasExtras(Solicitud_Estados_HorasExtrasItem solicitud_Estados_HorasExtrasItem)
 {
     base.AddObject("Solicitud_Estados_HorasExtras", solicitud_Estados_HorasExtrasItem);
 }
        partial void EnviarRespuesta_Execute()
        {
            if (TIPOSOLICITUD == 1)//DIAS ADMINISTRATIVOS
            {
                if (this.CanSave == true)//Solo creará un nuevo estado si el mensaje pasa la validación, de lo contrario se podrían enviar muchos mensajes vacios.
                {
                    
                    Solicitud_Estados_AdministrativoItem NuevoEstado1 = new Solicitud_Estados_AdministrativoItem();

                    if (TipoDeAccion == 1)//Cuando la accion es rechazar una solicitud
                    {
                        this.Solicitud_Estados_Administrativo.First().Solicitud_Detalle_AdministrativoItem.Solicitud_HeaderItem.Rechazada = true;

                        NuevoEstado1.TituloObservacion = "LA SOLICITUD HA SIDO RECHAZADA POR:";

                    }else

                    if (TipoDeAccion == 2)//Cuando la accion es aprobar una solicitud
                    {
                        if(this.Persona.First().Es_JefeDirecto == true)
                        {

                            this.Solicitud_Estados_Administrativo.First().Solicitud_Detalle_AdministrativoItem.Solicitud_HeaderItem.VB_JefeDirecto = true;

                            NuevoEstado1.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";
                        
                        }else

                        if (this.Persona.First().Es_SubGerente == true)
                        {

                            this.Solicitud_Estados_Administrativo.First().Solicitud_Detalle_AdministrativoItem.Solicitud_HeaderItem.VB_SubGerente = true;

                            NuevoEstado1.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";

                        }else

                        if (this.Persona.First().Es_Gerente == true)
                        {

                            this.Solicitud_Estados_Administrativo.First().Solicitud_Detalle_AdministrativoItem.Solicitud_HeaderItem.VB_Gerente = true;
                            this.Solicitud_Estados_Administrativo.First().Solicitud_Detalle_AdministrativoItem.Solicitud_HeaderItem.Completada = true;
                            NuevoEstado1.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";

                        }

                    }
                    else
                        if (TipoDeAccion == 3)
                        {
                            this.Solicitud_Estados_Administrativo.First().Solicitud_Detalle_AdministrativoItem.Solicitud_HeaderItem.Rechazada = true;

                            NuevoEstado1.TituloObservacion = "LA SOLICITUD HA SIDO CANCELADA POR:";
                        }

                    NuevoEstado1.CreadoAt = DateTime.Now;

                    NuevoEstado1.Observaciones = NuevoComentario;

                    NuevoEstado1.MensajeBy = this.Application.User.FullName;

                    NuevoEstado1.Solicitud_Detalle_AdministrativoItem = this.Solicitud_Estados_Administrativo.First().Solicitud_Detalle_AdministrativoItem;
                }
            }
            else

                if (TIPOSOLICITUD == 2)// VACACIONES
                {
                    if (this.CanSave == true)//Solo creará un nuevo estado si el mensaje pasa la validación, de lo contrario se podrían enviar muchos mensajes vacios.
                    {
                        Solicitud_Estados_VacacionesItem NuevoEstado2 = new Solicitud_Estados_VacacionesItem();

                        if (TipoDeAccion == 1)//Cuando la accion es rechazar una solicitud
                        {
                            this.Solicitud_Estados_Vacaciones.First().Solicitud_Detalle_VacacionesItem.Solicitud_HeaderItem.Rechazada = true;

                            NuevoEstado2.TituloObservacion = "LA SOLICITUD HA SIDO RECHAZADA POR:";

                        }else

                        if (TipoDeAccion == 2)//Cuando la accion es aprobar una solicitud
                        {
                            if (this.Persona.First().Es_JefeDirecto == true)
                            {
                                this.Solicitud_Estados_Vacaciones.First().Solicitud_Detalle_VacacionesItem.Solicitud_HeaderItem.VB_JefeDirecto = true;

                                NuevoEstado2.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";
                            }else

                            if (this.Persona.First().Es_SubGerente == true)
                            {
                                this.Solicitud_Estados_Vacaciones.First().Solicitud_Detalle_VacacionesItem.Solicitud_HeaderItem.VB_SubGerente = true;
                                this.Solicitud_Estados_Vacaciones.First().Solicitud_Detalle_VacacionesItem.Solicitud_HeaderItem.Completada = true;

                                NuevoEstado2.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";
                            }else

                            if (this.Persona.First().Es_Gerente == true)
                            {
                                this.Solicitud_Estados_Vacaciones.First().Solicitud_Detalle_VacacionesItem.Solicitud_HeaderItem.VB_Gerente = true;
                                this.Solicitud_Estados_Vacaciones.First().Solicitud_Detalle_VacacionesItem.Solicitud_HeaderItem.Completada = true;//Solo para las solicitudes de los subgerentes

                                NuevoEstado2.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";
                            }
                        }else
                            if (TipoDeAccion == 3)
                            {
                                this.Solicitud_Estados_Vacaciones.First().Solicitud_Detalle_VacacionesItem.Solicitud_HeaderItem.Rechazada = true;

                                NuevoEstado2.TituloObservacion = "LA SOLICITUD HA SIDO CANCELADA POR:";
                            }

                        NuevoEstado2.CreadoAt = DateTime.Now;

                        NuevoEstado2.Observaciones = NuevoComentario;

                        NuevoEstado2.MensajeBy = this.Application.User.FullName;

                        NuevoEstado2.Solicitud_Detalle_VacacionesItem = this.Solicitud_Estados_Vacaciones.First().Solicitud_Detalle_VacacionesItem;
                    }
                }
                else

                    if (TIPOSOLICITUD == 3)// HORAS EXTRAS
                    {
                        if (this.CanSave == true)
                        {
                            Solicitud_Estados_HorasExtrasItem NuevoEstado3 = new Solicitud_Estados_HorasExtrasItem();

                            if (TipoDeAccion == 1)//Cuando la accion es rechazar una solicitud
                            {
                                this.Solicitud_Estados_HorasExtras.First().Solicitud_Detalle_HorasExtrasItem.Solicitud_HeaderItem.Rechazada = true;

                                NuevoEstado3.TituloObservacion = "LA SOLICITUD HA SIDO RECHAZADA POR:";
                            }
                            else

                                if (TipoDeAccion == 2)//Cuando la accion es aprobar una solicitud
                                {
                                    if (this.Persona.First().Es_JefeDirecto == true)
                                    {
                                        this.Solicitud_Estados_HorasExtras.First().Solicitud_Detalle_HorasExtrasItem.Solicitud_HeaderItem.VB_JefeDirecto = true;

                                        NuevoEstado3.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";
                                    }
                                    else

                                        if (this.Persona.First().Es_SubGerente == true)
                                        {
                                            this.Solicitud_Estados_HorasExtras.First().Solicitud_Detalle_HorasExtrasItem.Solicitud_HeaderItem.VB_SubGerente = true;

                                            NuevoEstado3.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";
                                        }
                                        else

                                            if (this.Persona.First().Es_Gerente == true)
                                            {
                                                this.Solicitud_Estados_HorasExtras.First().Solicitud_Detalle_HorasExtrasItem.Solicitud_HeaderItem.VB_Gerente = true;
                                                this.Solicitud_Estados_HorasExtras.First().Solicitud_Detalle_HorasExtrasItem.Solicitud_HeaderItem.Completada = true;

                                                NuevoEstado3.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";
                                            }
                                }
                                else
                                    if (TipoDeAccion == 3)
                                    {
                                        this.Solicitud_Estados_HorasExtras.First().Solicitud_Detalle_HorasExtrasItem.Solicitud_HeaderItem.Rechazada = true;

                                        NuevoEstado3.TituloObservacion = "LA SOLICITUD HA SIDO CANCELADA POR:";
                                    }

                            NuevoEstado3.CreadoAt = DateTime.Now;

                            NuevoEstado3.Observaciones = NuevoComentario;

                            NuevoEstado3.MensajeBy = this.Application.User.FullName;

                            NuevoEstado3.Solicitud_Detalle_HorasExtrasItem = this.Solicitud_Estados_HorasExtras.First().Solicitud_Detalle_HorasExtrasItem;
                        }
                    }
                    else

                        if (TIPOSOLICITUD == 4)// OTROS PERMISOS
                        {
                            if (this.CanSave == true)
                            {
                                Solicitud_Estados_OtroPermisoItem NuevoEstado4 = new Solicitud_Estados_OtroPermisoItem();

                                if (TipoDeAccion == 1)//Cuando la accion es rechazar una solicitud
                                {
                                    this.Solicitud_Estados_OtroPermiso.First().Solicitud_Detalle_OtroPermisoItem.Solicitud_HeaderItem.Rechazada = true;

                                    NuevoEstado4.TituloObservacion = "LA SOLICITUD HA SIDO RECHAZADA POR:";
                                }
                                else

                                    if (TipoDeAccion == 2)//Cuando la accion es aprobar una solicitud
                                    {
                                        if (this.Persona.First().Es_JefeDirecto == true)
                                        {
                                            this.Solicitud_Estados_OtroPermiso.First().Solicitud_Detalle_OtroPermisoItem.Solicitud_HeaderItem.VB_JefeDirecto = true;

                                            NuevoEstado4.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";
                                        }
                                        else

                                            if (this.Persona.First().Es_SubGerente == true)
                                            {
                                                this.Solicitud_Estados_OtroPermiso.First().Solicitud_Detalle_OtroPermisoItem.Solicitud_HeaderItem.VB_JefeDirecto = true;

                                                NuevoEstado4.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";
                                            }
                                            else

                                                if (this.Persona.First().Es_Gerente == true)
                                                {
                                                    this.Solicitud_Estados_OtroPermiso.First().Solicitud_Detalle_OtroPermisoItem.Solicitud_HeaderItem.VB_JefeDirecto = true;

                                                    NuevoEstado4.TituloObservacion = "LA SOLICITUD HA SIDO APROBADA POR:";
                                                }
                                    }
                                    else
                                        if (TipoDeAccion == 3)
                                        {
                                            this.Solicitud_Estados_OtroPermiso.First().Solicitud_Detalle_OtroPermisoItem.Solicitud_HeaderItem.Rechazada = true;

                                            NuevoEstado4.TituloObservacion = "LA SOLICITUD HA SIDO CANCELADA POR:";
                                        }

                                NuevoEstado4.CreadoAt = DateTime.Now;

                                NuevoEstado4.Observaciones = NuevoComentario;

                                NuevoEstado4.MensajeBy = this.Application.User.FullName;

                                NuevoEstado4.Solicitud_Detalle_OtroPermisoItem = this.Solicitud_Estados_OtroPermiso.First().Solicitud_Detalle_OtroPermisoItem;
                            }
                        }

            this.CloseModalWindow("EnviarRespuestaMW");

            this.Save();

        }
 public static Solicitud_Estados_HorasExtrasItem CreateSolicitud_Estados_HorasExtrasItem(int id_Estados_HorasExtras, string observaciones, int detalleHorasExtras_fk)
 {
     Solicitud_Estados_HorasExtrasItem solicitud_Estados_HorasExtrasItem = new Solicitud_Estados_HorasExtrasItem();
     solicitud_Estados_HorasExtrasItem.Id_Estados_HorasExtras = id_Estados_HorasExtras;
     solicitud_Estados_HorasExtrasItem.Observaciones = observaciones;
     solicitud_Estados_HorasExtrasItem.DetalleHorasExtras_fk = detalleHorasExtras_fk;
     return solicitud_Estados_HorasExtrasItem;
 }
        partial void AceptarSolicitudUsuario_Execute()
        {
            // Aceptar solicitud de horas extras(el empleado que debe realizar las horas extras)
            if (TIPOSOLICITUD == 3)
            {
                this.Solicitud_Estados_HorasExtras.First().Solicitud_Detalle_HorasExtrasItem.Solicitud_HeaderItem.VB_Empleado = true;

                Solicitud_Estados_HorasExtrasItem NuevoEstado4 = new Solicitud_Estados_HorasExtrasItem();

                NuevoEstado4.TituloObservacion = "LA SOLICITUD HA SIDO ACEPTADA POR:";
                NuevoEstado4.CreadoAt = DateTime.Now;
                this.NuevoComentario = " ";
                NuevoEstado4.Observaciones = NuevoComentario;

                NuevoEstado4.MensajeBy = this.Application.User.FullName;

                NuevoEstado4.Solicitud_Detalle_HorasExtrasItem = this.Solicitud_Estados_HorasExtras.First().Solicitud_Detalle_HorasExtrasItem;

                
                this.Save();
            }
        }