Exemplo n.º 1
0
        public static void EstadoInteraccion_OnChanged(InteraccionModel <InteraccionBusiness> interaccion)
        {
            if (interaccion.EstadoInteraccion_CodigoSAP != Constants.EstadoInteraccionCodigoSAP.CONCLUIDA)
            {
                return;
            }

            if (
                interaccion.Formulario_CodigoSAP == null
                ||
                (interaccion.Formulario_CodigoSAP != ((int)Enums.eFormulario.CHECK_COMERCIAL).ToString() &&
                 interaccion.Formulario_CodigoSAP != ((int)Enums.eFormulario.CHECK_COMERCIAL_RETAIL).ToString() &
                 interaccion.Formulario_CodigoSAP != ((int)Enums.eFormulario.CHECK_VISITA_RETAIL).ToString())
                )
            {
                cerrarInteraccion(interaccion);
                return;
            }

            // No se puede cambiar de estado si alguna respuesta es NO CUMPLE
            GenericList <RespuestaInteraccionFormulario> respuestasNoCumple = new GenericList <RespuestaInteraccionFormulario>();

            var respuestasFormularioCheck = interaccion.RespuestasInteraccionFormulario;

            foreach (var respuestaFormularioCheck in respuestasFormularioCheck)
            {
                if (respuestaFormularioCheck.Respuesta_CodigoSAP == null)
                {
                    respuestasNoCumple.Add(respuestaFormularioCheck.SUPEntity);
                }
                else
                {
                    Respuesta respuesta = Respuesta.FindByCodigoSAP(respuestaFormularioCheck.Respuesta_CodigoSAP);
                    if (respuesta.CodigoSAP.Trim() == Constants.RespuestaCodigoSAP.NO_CUMPLE)
                    {
                        respuestasNoCumple.Add(respuestaFormularioCheck.SUPEntity);
                    }
                }
            }

            if (respuestasNoCumple.Size() > 0)
            {
                // TODO: Terminar de mostrar la interaccion subsiguiente
                App.Locator.InteraccionSubsiguienteChildViewModelStatic.RespuestasNoCumple = respuestasNoCumple;
                InteraccionSubsiguienteChildView.Show();

                if (App.Locator.InteraccionSubsiguienteChildViewModelStatic.Result)
                {
                    cerrarInteraccion(interaccion);
                }
            }
            else
            {
                cerrarInteraccion(interaccion);
            }
        }