public AccionCorrectoraActionForm(bool IsModal, InformeCorrector item, InformeDiscrepancia informe,
                                   Auditoria auditoria)
     : base(IsModal)
 {
     InitializeComponent();
     _entity         = item;
     _i_discrepancia = informe;
     _auditoria      = auditoria;
     SetFormData();
     this.Text = Resources.Labels.DISCREPANCIA_TITLE;
 }
 public InformeCorrectorViewForm(Auditoria auditoria, InformeCorrector entity, Form parent)
     : base(entity.Oid, true, parent)
 {
     InitializeComponent();
     _entity    = entity.GetInfo(true);
     _auditoria = auditoria;
     _informe   = _auditoria.Informes.GetItem(_entity.OidInformeDiscrepancia);
     if (EntityInfo != null)
     {
         SetFormData();
         this.Text = Resources.Labels.INFORME_ACCION_CORRECTORA_TITLE + " " + EntityInfo.Codigo.ToUpper();
     }
     _mf_type = ManagerFormType.MFView;
 }
        /// <summary>
        /// Implementa Save_button_Click
        /// </summary>
        protected override void SubmitAction()
        {
            if (!_entity.IsValid)
            {
                MessageBox.Show("Los campos introducidos no tienen los valores esperados.");
                return;
            }

            switch (_entity.TipoAsociado)
            {
            case (long)TipoNotificacionAsociado.COMUNICADO_AUDITORIA:
            {
                if (!AuditoriaFormController.IsActionEnabled(_auditoria, AccionAuditoria.COMUNICAR))
                {
                    return;
                }
                AuditoriaFormController.DoAction(_auditoria, AccionAuditoria.COMUNICAR);
                _auditoria.Notificaciones.AddItem(_entity);
                _auditoria.FechaComunicacion = DateTime.Now;
            }
            break;

            case (long)TipoNotificacionAsociado.INFORME_DISCREPANCIAS:
            {
                if (!AuditoriaFormController.IsActionEnabled(_auditoria, AccionAuditoria.NOTIFICAR_DISCREPANCIAS))
                {
                    return;
                }

                AuditoriaFormController.DoAction(_auditoria, AccionAuditoria.NOTIFICAR_DISCREPANCIAS, _oid_auxiliar);
                AuditoriaController.CalculaFechasDebidas(_auditoria);
                InformeDiscrepancia informe = _auditoria.Informes.GetItem(_oid_auxiliar);
                informe.FechaComunicacion = DateTime.Now;
                informe.Notificaciones.AddItem(_entity);
            }
            break;

            case (long)TipoNotificacionAsociado.INFORME_ACCIONES_CORRECTORAS:
            {
                if (!AuditoriaFormController.IsActionEnabled(_auditoria, AccionAuditoria.NOTIFICAR_INFORME_ACCIONES_CORRECTORAS))
                {
                    return;
                }

                AuditoriaFormController.DoAction(_auditoria, AccionAuditoria.NOTIFICAR_INFORME_ACCIONES_CORRECTORAS, _oid_auxiliar);
                foreach (InformeDiscrepancia informe in _auditoria.Informes)
                {
                    InformeCorrector corrector = informe.Correctores.GetItem(_oid_auxiliar);
                    if (corrector != null)
                    {
                        corrector.FechaComunicacion = DateTime.Now;
                        corrector.Notificaciones.AddItem(_entity);
                        break;
                    }
                }
            }
            break;

            case (long)TipoNotificacionAsociado.INFORME_FIN_AUDITORIA:
            {
                if (!AuditoriaFormController.IsActionEnabled(_auditoria, AccionAuditoria.APROBAR_AUDITORIA))
                {
                    return;
                }
                AuditoriaFormController.DoAction(_auditoria, AccionAuditoria.APROBAR_AUDITORIA);
                _auditoria.Notificaciones.AddItem(_entity);
            }
            break;

            case (long)TipoNotificacionAsociado.SOLICITUD_AMPLIACION:
            {
                if (!AuditoriaFormController.IsActionEnabled(_auditoria, AccionAuditoria.GENERAR_INFORME_AMPLIACION))
                {
                    return;
                }
                AuditoriaFormController.DoAction(_auditoria, AccionAuditoria.GENERAR_INFORME_AMPLIACION, _oid_auxiliar);
                foreach (InformeDiscrepancia informe in _auditoria.Informes)
                {
                    InformeAmpliacion ampliacion = informe.Ampliaciones.GetItem(_oid_auxiliar);
                    if (ampliacion != null)
                    {
                        ampliacion.FechaComunicacion = DateTime.Now;
                        ampliacion.Notificaciones.AddItem(_entity);
                        break;
                    }
                }
            }
            break;

            case (long)TipoNotificacionAsociado.CONCESION_AMPLIACION:
            {
                if (!AuditoriaFormController.IsActionEnabled(_auditoria, AccionAuditoria.NOTIFICAR_CONCESION_AMPLIACION))
                {
                    return;
                }
                AuditoriaFormController.DoAction(_auditoria, AccionAuditoria.NOTIFICAR_CONCESION_AMPLIACION, _oid_auxiliar);
                _auditoria.Notificaciones.AddItem(_entity);
            }
            break;

            case (long)TipoNotificacionAsociado.DENEGACION_AMPLIACION:
            {
                if (!AuditoriaFormController.IsActionEnabled(_auditoria, AccionAuditoria.NOTIFICAR_DENEGACION_AMPLIACION))
                {
                    return;
                }
                AuditoriaFormController.DoAction(_auditoria, AccionAuditoria.NOTIFICAR_DENEGACION_AMPLIACION);
                _auditoria.Notificaciones.AddItem(_entity);
            }
            break;

            default:
                break;
            }


            //if (SaveObject())
            //{
            _action_result = DialogResult.OK;
            Close();
            //}
        }
 public AccionCorrectoraActionForm(InformeCorrector item, InformeDiscrepancia informe, Auditoria auditoria)
     : this(true, item, informe, auditoria)
 {
 }